对网络最简单/最简单的理解是
A。当您连接到 ISP 时,ISP 仅在连接期间提供动态地址(如临时电话号码),下次连接时,您将再次拥有不同的动态 IP 地址。
b.您使用浏览器访问具有静态 IP 地址(例如机构的永久号码或/和永久地址)的不同站点。
现在有没有一种方法可以获取自己的 IP 地址,而不是访问像 Whatismyipaddress.com 这样的网络服务。
连接如下:-
ISP - 调制解调器/路由器 - 系统
编辑 - 调制解调器/路由器是 D-Link DSL-2750U ADSL 路由器/调制解调器。http://www.dlink.co.in/products/?pid=452
我确实看到了如何在日志文件中跟踪我的公共 IP 地址?但它也使用外部 Web 服务,如果我们不需要访问外部 URL/IP 地址,那就更好了。
答案1
除了托尼的回答之外,还查询 OpenDNS,我在登录服务器时在脚本中使用它来显示本地计算机和远程公共 IP 地址:
echo `hostname` `hostname -i` `dig +short +time=1 myip.opendns.com @resolver1.opendns.com`
谷歌也提供类似的服务。
dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F'"' '{ print $2}'
如果您在家庭或公司路由器/基础设施后面有一个私有 IP 地址,或者即使您是自己的路由器,互联网中的这些服务也会泄露您用于访问它们的公共 IP 地址,因为它是到达他们那里执行请求。
请注意上述方法仅在相关 Linux 机器可以直接访问互联网时才有效。
如果您的 Linux 服务器是您的路由器,除了可以查看当前的接口之外,您还可以执行以下操作:
hostname -i
通常,公共 IP 地址通常是主/第一个接口。如果不是第一个界面,您也可以这样做:
$hostname -I
95.xx.xx.xxx 192.168.202.1 192.168.201.1
其中显示了机器接口的所有 IP 地址。
也请阅读:
同样,如果 Linux 服务器是路由器,那么放置一个脚本来/etc/dhcp/dhclient-exit-hooks.d
跟踪 IP 更改并对其采取行动可能会很有趣,正如我在这个问题中记录的那样:
答案2
仅当您的调制解调器或路由器提供查询该信息的方法时,您才能执行此操作。 IP 地址被分配给路由器或调制解调器上面向 WAN/互联网的接口,因此您需要能够查询该地址,或者连接到互联网服务,然后该服务会告诉您它是什么。
您可以使用 DNS 来获取响应,使用这个,
dig +short @resolver1.opendns.com myip.opendns.com
但它仍然需要外部服务来实现。
因此,要么查询您的路由器(如果有可以使用的接口),要么使用外部服务。
当然,如果Linux机器是你的路由器,那么你只需使用ip
或ipconfig
来查询WAN接口。
答案3
1)可以使用dig
(域名信息探查器)命令:
dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F'"' '{ print $2}'
或者 :dig TXT +short o-o.myaddr.l.google.com @ns1.google.com
2)你可以尝试host
命令:
host myip.opendns.com resolver1.opendns.com
3)通过命令使用第三方网站curl
或wget
:
curl ipecho.net/plain ; echo
或者
wget -qO- http://ipecho.net/plain ; echo
或者
curl ipv4.icanhazip.com
4)通过telnet
:
telnet myip.gelma.net
答案4
你的系统不知道这个ip,所以你会询问系统外部的一些东西。正如您的路由器所知道的那样,它可以提供这样的服务,我不知道这样做的路由器(但我从未调查过),但如果存在具有该功能的路由器,我们可能需要知道您的路由器的型号才能告诉你如何。
各种服务可以告诉您您的公共IP存在,但并非所有服务都是基于网络的,当然您的路由器可以实现基于网络和非基于网络的服务。