以编程方式在Android中的外部IP地址

Posted

技术标签:

【中文标题】以编程方式在Android中的外部IP地址【英文标题】:External ip address in Android programmatically 【发布时间】:2011-10-19 10:23:06 【问题描述】:

我到处搜索如何获取外部 IP 地址,但无济于事。我能够成功获取本地IP地址。

简而言之,我想要获得与我在 whatip.com 或 whatismyipaddress.com 上时相同的 IP 地址。但是,我不想对网站进行任何调用,有没有内置的方法来获取这个?

另外,如果用户连接到 wifi,我想要外部 IP 地址。

【问题讨论】:

one of such services - 返回单个纯字符串 How to get IP address of the device from code?的可能重复 【参考方案1】:

但是,我不想对网站进行任何调用,是否有内置方法可以获取此信息?

没有。这在大多数硬件上都是不可能的,包括台式机和笔记本电脑,更不用说手机了。通常,您位于某种 NAT 后面,它定义了您的“外部 IP 地址”。

【讨论】:

呃,这真是太糟糕了...如果手机是通过 wifi 网络连接的,会有什么不同吗? @unknown:不。同样,一般来说,你在某种 NAT 后面,它定义了你的“外部 IP 地址”。这就是存在whatismyipaddress.com 之类的服务的原因。如果每个人都知道他们的外部 IP 地址,我们就不需要这样的服务了。【参考方案2】:

IcanHazIP.com 为您提供简短而甜蜜的外部 IP 响应。

但是,在大量手机上使用该 URL 将不可避免地为少数设备产生相同的 IP(原因 CommonsWare 已经解释过)。

想法:如果您收集外部 IP 与本地 IP 结合,数据可能更有意义。因此,向 IcanHazIP.com 发送请求,后跟以下本地 IP 示例代码:http://chandan-tech.blogspot.com/2010/12/finding-ip-address-of-your-android.html

顺便说一句,我曾使用由 Sprint 激活的调制解调器开发设备,并且它们的本地 IP 实际上是外部 IP

【讨论】:

以上是关于以编程方式在Android中的外部IP地址的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 上以编程方式从 Mac 地址获取 IP 地址?

如何以编程方式获取android手机的IP地址......? [复制]

如何以编程方式在android中获取连接的wifi路由器的IP地址?

如何以编程方式查找设备的公共 IP 地址? [复制]

Android 设备如何以编程方式推断它所连接的 Linux 设备的 IP 地址?

如何在 Android 3.x 或 4.x 上以编程方式配置静态 IP 地址、网络掩码、网关