我怎样才能检查任何特定端点上的我的 IP 是什么?

我怎样才能检查任何特定端点上的我的 IP 是什么?

我知道我可以做curl curlmyip.com类似的事情,但这只向我展示了 curlmyip.com 正在看到的 ip。

有没有什么工具可以告诉我任何 TCP 连接端点(不仅仅是 curlmyip.com)的端点上的 IP 是什么?

答案1

互联网协议没有一种固有的方式来披露任何一方的地址

如果你可以控制这些端点,你可以设置诸如服务之类的服务,或者简单地在远程端点上捕获 ICMP 回显(ping),以查看它所呈现的 IP

另一个解决方案是使用 netcat 打开一个简单的服务器并连接到它,当使用详细开关运行时,它将显示有关连接的对等方的信息

server:~# nc -lvp 1234
Listening on [0.0.0.0] (family 0, port 1234)
Connection from [127.0.0.1] port 1234 [tcp/*] accepted (family 2, sport 42852)

答案2

您可以使用curl --interface来定义应该使用哪个接口来处理请求。然后curlmyip.com像往常一样请求或类似的服务。

答案3

一般情况下这是不可能的。

一般而言,多层 NAT 意味着有多个路由器以相当透明的方式应用 NAT。NAT 的要点是它会替换地址,从而丢弃外部视为您的地址的任何信息。

实现这一目标的唯一方法是

  • 在...举行仪式每一个远端端点报告其所见的源 IP。或者
  • 可以访问所有介入的具有 NAT 功能的路由器的配置。

因此,如果您对远端端点有一定控制权,那么可能会有解决方案可用。

答案4

我不确定我是否正确理解了你的问题,但是除了其他解决方案之外,还有以下解决方案:

dig +short myip.opendns.com @resolver1.opendns.com

DNS 比使用 http 更快、更轻量。如果 dig 不可用,请尝试使用适用于您的 dns 查询的工具,并查看serverfault 上的这个答案

相关内容