天道酬勤,学无止境

dns

使用 Python 获取 DNS 解析时间和响应时间(Getting DNS resolution time and response time with Python)

问题 PycURL 或任何其他 python pakcage 是否提供以下信息: 抬头连接时间 我想获得与此 cURL 命令相同的信息(不使用子进程调用命令): 命令 curl -s -w '\nLookup time:\t%{time_namelookup}\nConnect time:\t%{time_connect}\nPreXfer time:\t%{time_pretransfer}\nStartXfer time:\t%{time_starttransfer}\n\nTotal time:\t%{time_total}\n' -o /dev/null http://stackoverflow.com/ 输出: Lookup time: 0.029 Connect time: 0.144 PreXfer time: 0.144 StartXfer time: 0.263 Total time: 0.803 回答1 是的,PyCurl 提供了信息。 您可以使用pycurl获取信息。 它可以提供很多细节,而不仅仅是你提到的那些。 下面是一个示例代码,您可以使用它来获取相同的信息: import pycurl from io import BytesIO buffer = BytesIO() c = pycurl.Curl() c.setopt(c.URL, 'http:/

2021-09-21 13:12:32    分类:技术分享    python   curl   dns   performance-testing   pycurl

gethostbyname 双网口,选择使用哪个(gethostbyname dual network interfaces, select which one to use)

问题 我有一个需要连接到服务器并发送 tcp 有效负载并等待响应的 c 程序。 这适用于正常使用,但由于我有两个不同的网络接口,让我们在运行程序的计算机上调用它们 if0 和 if1,有时其中一个网络接口无法转发流量。 不幸的是,这是我无法改变的事实。 为了优雅地处理这个问题,因为操作系统无法帮助我将数据路由到正确的接口,我使用 if0 和 if1 发送有效负载。 我创建了一个套接字,并使用 bind 将套接字绑定到特定的接口,我对 if0 和 if1 都这样做。 不幸的是,这并没有按我的计划工作,因为我用来解析主机名的 gethostbyname 当然只使用了一个接口。 不幸的是,我无法在此特定问题上更改操作系统配置,我需要绕过操作系统中的任何逻辑并确保流量进入特定接口。 我有以下地址查找代码: struct hostent *remoteHostEnt = gethostbyname(hostName); 有什么方法可以让我也使用特定的接口来制作 gethostbyname 吗? 我想尝试同时使用 if0 和 if1 使用 gethostbyname 并使用任何可接受的结果。 我是否需要制作自己的 DNS 查找实现并为此使用套接字,或者我可以使用 posix c 中的某些内容? 或者也许有一个我可以使用的图书馆? 回答1 如果您无法更改系统配置

2021-09-20 16:02:03    分类:技术分享    c   networking   dns   posix   gethostbyname

gethostbyname 双网口,选择使用哪个(gethostbyname dual network interfaces, select which one to use)

问题 我有一个需要连接到服务器并发送 tcp 有效负载并等待响应的 c 程序。 这适用于正常使用,但由于我有两个不同的网络接口,让我们在运行程序的计算机上调用它们 if0 和 if1,有时其中一个网络接口无法转发流量。 不幸的是,这是我无法改变的事实。 为了优雅地处理这个问题,因为操作系统无法帮助我将数据路由到正确的接口,我使用 if0 和 if1 发送有效负载。 我创建了一个套接字,并使用 bind 将套接字绑定到特定的接口,我对 if0 和 if1 都这样做。 不幸的是,这并没有按我的计划工作,因为我用来解析主机名的 gethostbyname 当然只使用了一个接口。 不幸的是,我无法在此特定问题上更改操作系统配置,我需要绕过操作系统中的任何逻辑并确保流量进入特定接口。 我有以下地址查找代码: struct hostent *remoteHostEnt = gethostbyname(hostName); 有什么方法可以让我也使用特定的接口来制作 gethostbyname 吗? 我想尝试同时使用 if0 和 if1 使用 gethostbyname 并使用任何可接受的结果。 我是否需要制作自己的 DNS 查找实现并为此使用套接字,或者我可以使用 posix c 中的某些内容? 或者也许有一个我可以使用的图书馆? 回答1 如果您无法更改系统配置

2021-09-20 16:00:17    分类:技术分享    c   networking   dns   posix   gethostbyname

找不到与 www.billiving.com 匹配的主题备用 DNS 名称。 为什么会这样,如何解决?(No subject alternative DNS name matching www.billiving.com found. Why this caused and how to solve?)

问题 我有 www.billiving.com API 的集成测试套件。 当该 API 调用端点应为 https://www.billiving.com 时。 我的测试套件在 Windows 上完美运行。 但是,当它移动到 ubuntu 14.x 时,它会因以下异常而失败。 [1] 所以我写了这个 [2] 代码来测试它超出测试套件。 仍然失败,但有相同的例外。 所以我尝试将 billiving.com 证书导入 JKS,但仍然失败并出现相同的异常。 我知道作为一种解决方案,我们可以覆盖 Verifier 类中的 verify 方法并返回 true。 但我需要适当的解决方案,因为这可能会导致安全问题。 1) 为什么这个错误以及为什么它只在 linux 上。 2)我们如何用适当的解决方案来解决这个问题 API 网址:https://www.billiving.com/ [1] 例外: > javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative DNS > name matching www.billiving.com found. at > com.sun.net.ssl.internal.ssl.Alerts.getSSLException

2021-09-20 15:01:49    分类:技术分享    java   ssl   dns   ssl-certificate   java-security

主机之间的持久 TCP 连接,即使 IP 地址更改(Persistent TCP connection between hosts, even if IP address changes)

问题 即使 IP 地址发生变化,我如何与另一台远程主机建立持久的 TCP 连接? 假设我创建了一个程序来连接到一个 IP 地址。 一段时间后(PC 重启等)IP 地址发生变化,我的程序将不再连接到目标 PC。 有一个叫做 DNS 的东西,你可以在其中输入一个域,然后你会得到一个有效的 IP 地址。 为此,我听说您需要托管服务器并为此付费。 例如Skype就是P2P。 这是如何运作的? 有没有办法以编程方式制作一个服务器,即使我的 IP 地址发生变化,某人(不在我的本地局域网中)也可以始终连接到该服务器? 回答1 即使在地址更改后,您也可以使用 p2p 命名机制连接到机器。 Microsoft 有 PNRP 名称服务,它使用 p2p 命名系统为计算机生成唯一名称。 使用此 PNRP 名称,即使在 IP 地址更改后,您也可以连接到机器。 查看以下链接了解详情:https://technet.microsoft.com/en-us/library/bb962088.aspx Skype 也可能使用类似的机制来识别其他对等点地址。

2021-09-20 06:05:13    分类:技术分享    c   sockets   dns   ip

apt-get 在公司代理后面的 docker 中(apt-get in docker behind corporate proxy)

问题 我正在尝试使用 Docker 在公司代理服务器后面设置开发环境。 尽我所能,我无法让 docker 容器与代理服务器通信。 代理服务器和 apt-get 在主机上运行良好,主机是 Ubuntu 12.04 在 Dockerfile 中做的第一件事是尝试设置代理变量: FROM ubuntu RUN echo 'Acquire::http { Proxy "http://my.proxy.net:8000"; };' >> /etc/apt/apt.conf.d/01proxy ENV HTTP_PROXY http://my.proxy.net:8000 ENV http_proxy http://my.proxy.net:8000 ENV HTTPS_PROXY https://my.proxy.net:8000 ENV https_proxy https://my.proxy.net:8000 RUN apt-get update && apt-get install -y build-essential 它可以很好地拉取图像,设置变量,但是当它到达 apt-get update 时,它​​会尝试一段时间然后失败: W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/InRelease W

2021-09-20 02:16:08    分类:技术分享    proxy   dns   docker   virtualbox   apt-get

Docker 守护进程和 DNS(Docker daemon and DNS)

问题 我试图强制 docker 守护进程使用绑定到 bridge0 接口的 DNS 服务器。 我在 docker_opts 中添加了 --dns 172.17.42.1 但没有成功 DNS 服务器使用 dig 命令回复 ok: dig @172.17.42.1 registry.service.consul SRV +short 1 1 5000 registry2.node.staging.consul. 但是使用此域进行拉取失败: docker pull registry.service.consul:5000/test FATA[0000] Error: issecure: could not resolve "registry.service.consul": lookup registry.service.consul: no such host PS:通过在我的 /etc/resolv.conf 中添加名称服务器 172.17.42.1 解决了问题,但 DNS 必须专门用于 docker 命令。 任何的想法 ? 回答1 您将--dns 172.17.42.1传递给 docker_opts,因此您应该能够从其他容器内部解析容器主机名。 但显然你是从主机而不是从容器中执行docker pull ,不是吗? 因此,您无法从主机解析容器的主机名也就不足为奇了

2021-09-20 01:44:20    分类:技术分享    dns   docker

Docker Weave 和 WeaveDNS 问题(Docker Weave and WeaveDNS issues)

问题 我在本地机器上运行的小型 weave 网络上设置 weaveDNS 时遇到问题。 现在,问题表现在这样一个事实,即当我运行“编织状态”时,我没有在输出中看到 DNS 部分(正如 http://docs.weave.works/weave/latest_release 的“故障排除”部分中所建议的那样/weavedns.html)。 我正在运行 4 个容器。 weave ps输出为: c1d106ed5717 c2:ce:53:49:98:f6 10.0.1.12/24 8f01765b2ba6 ba:2e:c3:4b:8f:8f 10.0.1.30/24 0d824d914383 ae:95:28:db:95:18 10.0.1.11/24 6cf985b91e9a 12:82:31:c2:b4:49 10.0.1.10/24 b43f86e9fb51 d6:2e:d4:6a:09:dc **10.0.1.200/24** 2847dd89e90d be:8b:d5:74:07:94 突出显示的容器 (10.0.1.200) 是 weaveDNS 容器。 最后一个容器 (2847dd89e90d) 是 Weave 路由器容器。 我开始使用以下容器: sudo weave run --with-dns 10.0.1.30/24 -h service.weave.local -

2021-09-19 18:39:21    分类:技术分享    dns   docker   weave

配置 Google 域以指向 Azure 网站(Configuring Google Domain to point to Azure website)

问题 我有一个托管在 Azure 上的站点,我试图将其从 Google Domains 指向一个域。 我目前的配置如下: Name Type Data @ A XXX.XXX.XXX.XXX www CNAME history-podcasts.azurewebsites.net awverify CNAME awverify.history-podcasts.com 我正在按照此处的说明操作:为 Azure 网站配置自定义域名。 当我转到 Azure 门户管理域并尝试在 DOMAIN NAMES 中输入 URL 时,我收到以下消息: 未找到从 history-podcasts.com 指向 history-podcasts.azurewebsites.net 的 CNAME 记录。 也没有找到替代记录 awverify.history-podcasts.com 到 awverify.history-podcasts.azurewebsites.net 当我转到域的 URL 时,我收到以下消息: 您尝试访问的网站在此 Microsoft Azure 网站区域中不可用。 这可能是由于以下几个原因之一: 网站所有者已注册自定义域以指向 Microsoft Azure 网站,但尚未配置 Azure 以识别它。 点击这里阅读更多。 当站点所有者想要将自定义域与 Microsoft

2021-09-19 11:20:54    分类:技术分享    azure   dns   azure-web-app-service

根据附加域名查找原始主域名(Find original main domain name based on add-on domain name)

问题 这甚至可能是不可能的,但我正在尝试找出附加域的主域的 URL。 例如,让我们说该站点位于mymaindomain.com. 如果我去 http://mymaindomain.com/cpanel (or :2082 or :2083) 我什么也得不到。 这是因为mymaindomain.com是主机帐户的附加域。 假设帐户上的主域是myprimarydomain.com ,这是最初使用托管帐户设置的域。 但是,该域不再有效并且不再被托管客户端租用。 如果我使用旧的主域登录到 cpanel http://myprimarydomain.com/cpanel (or :2082 or :2083) 我能够进入cpanel。 问题是,必须有一个新的主域名与此帐户相关联,但我不知道它是什么。 鉴于 cpanel 对帐户的访问权限,有什么方法可以找出这一点? 有没有其他方法可以找出帐户上的主域? 非常感谢任何帮助,并且奖励将立即奖励给第一个正确答案。 回答1 抱歉,我的代表太低,无法发表评论,我想知道您是否能够在进入 cpanel 后获取服务器的 IP。 (应该在右侧)。 如果是这样......你能去这里输入IP并告诉我'节点主机名'说的是什么吗? ISP 也可能会有所帮助。 获取IP.com

2021-09-19 10:56:12    分类:技术分享    dns   hosting   cpanel   add-on