如何使用命令(curl/dig等)检查全局IP地址
目录
大家好。
我是系统解决方案部的一名成员,天一冷就起不来床。
意识到,查看全局IP地址的方式因人而异,而且
因此,这次我想主要解释一下“如何使用命令(curl/dig/nslookup)检查全局IP地址”。
然而,
有些人可能会想,
我们还将解释如何使用常见浏览器执行此操作。
执行环境
● Linux环境
・操作系统:Ubuntu 20.04.5 LTS(WSL2环境)
・Shell:bash
・区域设置更改为日语
● Windows环境
・操作系统:Windows11(版本:21H2)
・Shell:命令提示符
・将语言设置更改为日语
如何使用常用浏览器查看
首先,我们来解释一下一般方法。
无论您是否是基础设施工程师,
检查 PC 的全球 IP
是使用浏览器访问 IP 确认站点。
*我认为以下两个网站是最著名的,在搜索结果中排名靠前。
○ “CMAN”
https://www.cman.jp/network/support/go_access.cgi
○“吉坤君-UGTOP”
https://www.ugtop.com/spill.shtml
当您访问这些IP确认站点时,将显示您当前使用的全球IP等。
原则
原理很简单。
当客户端(用户)使用浏览器访问Web服务器时,
它会使用HTTP(S)协议向服务器发送HTTP请求。
此时,浏览器发送的“HTTP请求”大致分为四种结构
(仅此一项就占了整篇文章的篇幅,不再赘述)。
- 指定通信协议和方法的“请求行”
- “标题行”包含有关发送请求的一方的信息等。
- 空行
- “消息正文”
包含称为“请求标头”的
,例如请求访问的客户端(用户)的
将访问该站点的人发送的请求头信息
呈现给访问该站点的人来告诉您全局IP地址
下面介绍的命令中也用到了这个原理,希望大家牢记在心。
如何使用curl命令检查(Linux和Windows)
● 卷曲
说到如何使用命令进行检查,可能 100 人中有 95 人(我的猜测)的标准方法是curl 命令。
这个命令本身是一个很棒的命令,它允许你使用各种通信协议发送和接收数据,
我认为它通常用于检查Web服务器是否正常运行。
它已作为标准安装在最近的主要 Linux 发行版中,并且
也已作为标准安装在 Windows 10 (2018 Ver. 1803 (RS3) ~) 中。
curl inet-ip.info xxx.xxx.xxx.xxxcurl ifconfig.co xxx.xxx.xxx.xxxcurl httpbin.org/ip { "origin": "xxx.xxx.xxx.xxx" } *以json格式输出
用法主要如上。
您可能已经注意到“您正在向网站发送请求吗?”没错,
与上面解释的使用“请求标头”的方法相同
唯一的区别是域名
我使用curl命令向IP确认站点发送HTTP请求,并且
仅接收IP地址作为请求标头信息的响应。
还有其他几个具有相同目的的网站,因此我认为选择将取决于您对域名的偏好。
我认为用于确认的网站因人而异,这才是“因人而异,结果略有不同”的真正原因。
总之,请注意“curl 不是内部检查全局 IP 的命令”。
这只是使用外部服务的一种形式。
如何使用 dig/nslookup 命令进行检查 (Linux/Windows)
● dig (Linux)
● nslookup (Windows)
dig 和 nslookup 命令用于检查域。
上面两个命令虽然名称和工具不同,但是
用法大致相同,所以我就放在一起解释一下。
该命令是一个查询 DNS 服务器并接收 DNS 记录响应的工具,但
实际上有多个 DNS 服务器可以告诉您您的全球 IP。
- 谷歌
- 思科(OpenDNS)
- 云耀
例如,如果您对上述特定 DNS 服务器进行特定查询,它将以查询者的全局 IP 进行响应。
这些功能原本是用来确认使用相关DNS的服务是否正在被使用,
似乎并不为人们所熟知。
这次我们查看了该公司及相关公司员工发布的官方文档和论坛,
发现有一些关于它的存在以及如何使用的信息。
此确认方法使用 Cisco (OpenDNS) DNS 服务器,该服务器的存在已被确定为公开披露。
●ubuntu(bash) dig myip.opendns.com @208.67.222.222 +short xxx.xxx.xxx.xxx
在“dig”的情况下,可以使用“+short”选项,这样就可以只显示全局IP。
●Windows(CMD) nslookup myip.opendns.com 208.67.222.222 服务器:dns.opendns.com 地址:208.67.222.222 未经授权的答案: 名称:myip.opendns.com 地址:xxx.xxx.xxx.xxx
``nslookup'' 没有缩短选项,但它比完整显示的 ``dig'' 更短,所以我认为它更容易阅读。
思科社区一位员工发布的知识里有这样的描述。
*我添加并使用了dig的short选项,但主要用法本身与knowledge相同。
Umbrella:只能与 Umbrella 的 DNS 服务器一起使用的特殊 DNS 请求
附注:Google 的 DNS
顺便说一句,谷歌实际上在他们的公开文档中有一些描述。
然而,这并不是对命令的解释,可以完美地获得您正在寻找的结果,并且
与 Cisco 不同的是,所使用的命令有点长,因为它以 TXT 记录格式返回。
这次我就省略解释了。
哪个更方便:curl 或 dig & nslookup?
给出相同的答案:“执行命令的客户端(全局IP)”
所以,使用你喜欢的方法是没有问题的。
然而,这并不是一个令人满意的答案。
实际上,我认为没有太大的优点或缺点,但我认为dig 和 nslookup 更稳定
除非您正在查询的 Web 服务器正在运行,否则curl 方法不会产生结果。
在撰写本文时,我访问了几个 IP 确认服务站点,但
“429 Too Many Requests”错误代码,我无法确认结果。
然而,dig 和 nslookupDNS 的方法
是的...Google和Cisco(OpenDNS)管理的DNS服务器基本运行稳定,所以你可以放心。
事实上,如果停止的话将是一场灾难。
在查询之前考虑服务的稳定性时,
显然后者比大公司的1WEB服务器和DNS服务器更稳定。
旁注:dig 和 nslookup 实际上在内部更快。
没有明显的差异,但 dig 和 nslookup 在“内部”执行速度方面更快。
这是因为curl使用TCP来检查响应作为通信协议,而
dig & nslookup使用UDP来发送单向通信,因此存在速度差异。
结论
“没有什么极端的区别,就用好用的方法吧。” “也就是说,dig 和 nslookup 更快。”
它在很多情况下都会用到,比如检查服务器的全局IP,所以我希望这篇文章对您有所帮助。
这是一篇很长的文章,但感谢您阅读本文!
参考资料
HTTP 概述
https://developer.mozilla.org/en/docs/Web/HTTP/Overview
微软发货的curl(curl官网)
https://curl.se/windows/microsoft.html
Umbrella:只能与 Umbrella 的 DNS 服务器一起使用的特殊 DNS 请求