0

我正在使用 jstun 库(hxxp://jstun.javawi.de/)开发一个 java 应用程序,我需要将我的公共 IP 与内核选择的 IP 进行比较(通配符地址 - hxxp://java.sun .com/j2se/1.5.0/docs/api/java/net/DatagramSocket.html#DatagramSocket() )当我创建一个udp套接字时。

我不明白的是,如果我的 natted 网络上的本地 ip 是 192.168.1.x 的形式,为什么我会得到 10.xxx 之类的 ip?

两者完全不相关有什么特别的原因吗?如果我不在nat 后面,内核会将套接字绑定到我的公共地址吗?

多谢!不对称

4

2 回答 2

1

对于发送套接字,源 IP 将由主机路由表根据目标 IP 确定;对于接收套接字,目标 IP 就是你得到的。您的对等方看到的“公共”IP 是来自您的数据包上的源地址,它被 NAT 重写为任何内部地址被转换为的地址。

于 2009-05-26T12:51:38.230 回答
0

我没有提到一件相当重要的事情:我正在为 android 开发,并在 android 模拟器上运行我的代码,这解释了 10.xxx 地址的事情..

我应该更深入地研究..感谢您的帮助!

对于那些感兴趣的人:hxxp://developer.android.com/guide/developing/tools/emulator.html#networkaddresses

于 2009-05-26T14:17:35.780 回答