2016-03-03 44 views
0

我知道远程节点的一个IP地址。路由跟踪。但是,我想知道其接口中的所有IP地址。我该怎么做?该节点没有主机名,所以我无法使用API​​通过主机名API获取各种ifaddress。我搜索了各个地方,但找不到如何获得远程节点的各种IP地址。有可能得到它吗?基本上,我正在实施traceroute,我的目标是显示中间节点的环回地址,而不是实际的接口地址。如果环回地址不可用,我想显示实际的接口地址。我在这里苦苦挣扎,对此毫无头绪。这全部使用C-linux,UDP套接字来实现。如何知道使用C,Linux,Socket的服务器的各种IP地址?

+1

你想知道为什么吗?您大概只能从任何特定的子网中使用其中的一个。 '这全部用C - Linux实现,UDP套接字'简直是不真实的,否则你不会问这个问题。什么都没有实现。如果你真的需要这个,你将不得不设计你自己的协议和你自己的远程代理,并把它安装在感兴趣的目标上。 – EJP

回答

0

我想知道它的接口中的所有IP地址。我该怎么做

查找DNS或登录并使用操作系统相关工具/ API来查找本地接口的IP地址,否则您将丢失。

0

从技术上讲,如果你在同一个网络上,你可以使用macid和嗅探网络流量来找到该接口上的其他IP,但是一旦你离开你的本地网络,几乎不可能找出其他机器是ips听着,如果他们提供这些信息,这将是一个安全问题。

0

traceroute的工作方式是通过向远程地址发送IP TTL值增加的数据包,沿途的路由器将产生超过ICMP TTL超过的时间,从而将其IP源地址显示给发件人,以便您了解尝试与特定的远程地址进行通信时数据可能正在穿越的跳数。 icmp错误消息将包含该跳来电接口的IP地址,在您的情况下,您还希望发现分配给其他传出接口的所有其他IP地址(从发件人的角度来看,传出),但这不是通过使用上述上述技术或任何其他。

相关问题