当前位置: 技术问答>linux和unix
高分请教--如何知道对方ip的真实来源
来源: 互联网 发布时间:2015-08-22
本文导语: 请教大家, 如何知道对方机子的ip是使用真实公网ip,还是通过nat转换而来的, 前提是用C语言编程实现 | 这个恐怕没办法吧,不好区分的。 | 单纯分析数据包区分不了 nat转换...
请教大家,
如何知道对方机子的ip是使用真实公网ip,还是通过nat转换而来的,
前提是用C语言编程实现
如何知道对方机子的ip是使用真实公网ip,还是通过nat转换而来的,
前提是用C语言编程实现
|
这个恐怕没办法吧,不好区分的。
|
单纯分析数据包区分不了
nat转换后的数据包并没有什么特征。
nat转换后的数据包并没有什么特征。
|
是不是可以用MAC 地址来判断.
1. 先发个ping 包,确定对方主机的mac地址.
2. 然后对照对方发来的包里面的mac地址, 与上面的作个比较,看看是否一样,
不一样 -- 肯定是NAT 过来的
一样 -- 可能不是(不过也不能完全确定)
这个我也只是想想, 可能不是很准. (首先要确定目标主机的真实mac地址,比较困难, 光发个ping
可能还不能确定)
1. 先发个ping 包,确定对方主机的mac地址.
2. 然后对照对方发来的包里面的mac地址, 与上面的作个比较,看看是否一样,
不一样 -- 肯定是NAT 过来的
一样 -- 可能不是(不过也不能完全确定)
这个我也只是想想, 可能不是很准. (首先要确定目标主机的真实mac地址,比较困难, 光发个ping
可能还不能确定)
|
简单的 gethostbyaddr() gethostbyname()
这并不能得到网络上真正的主机地址。
这并不能得到网络上真正的主机地址。
|
gz
|
nat是根据端口号来找子网内的主机的吧?
|
这个不容易区分。
|
有办法!
但是有 宁可错杀一千 不能放走一个之嫌
就是可能误报
但应该是没问题。 不过也看 nat的实现方式了
不过一般都可以
但是有 宁可错杀一千 不能放走一个之嫌
就是可能误报
但应该是没问题。 不过也看 nat的实现方式了
不过一般都可以