嗨,我是新的android编程。我基本上试图连接到接入点并发送命令。通过wifi连接到它后,是否可以通过编程方式获得它的IP地址,以便我可以建立一个http连接? 到目前为止,我知道我们可以获取设备IP,但不知道是否可以获取接入点IP。请帮忙。提前致谢。我可以通过wifi连接到接入点的IP地址吗?
回答
我假设你指的是设备连接到的接入点的外部(公共)IP地址。如果是这样,是的,有一种简单的方法来获取设备连接到的接入点的公共IP地址。只需在Web服务器上设置一个脚本,该脚本将回显连接到它的任何客户端的IP地址(类似于www.whatismyip.com)。然后,您的设备只需要对脚本执行GET请求,这将返回设备连接到的接入点的外部IP。
谢谢,但不幸的是,我将无法访问任何其他Web服务器。这需要是一个独立的Android应用程序,它只与它所连接的接入点进行交互。另外,通过接入点的IP,我的意思是由可用于AP的DHCP代理分配给它的IP。 – user2597333
我使用该工具来获取IP地址
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)
{
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses();enumIpAddr.hasMoreElements();)
{
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress())
{
//My IP address
String Ip= inetAddress.getHostAddress().toString();
}
}
}
}
catch (SocketException e)
{
Log.e("Error occurred ", e.toString());
}
这是完美的代码,但我不认为它会工作无线 – 2013-07-23 06:08:14
谢谢Gaurav。上面的代码在连接到wifi时会返回一个ipv6地址。所以我无法检查这是否是正确的地址。我也试过包括if(!inetAddress.isLoopbackAddress()&&(inetAddress instanceof Inet4Address)),但是我又没有得到任何IPv4地址。我连接的AP确实有IPv4地址,我可以从子网内ping它。但这并不是一回事。 – user2597333
public static String getApIpAddr(Context context) {
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
DhcpInfo dhcpInfo = wifiManager.getDhcpInfo();
byte[] ipAddress = convert2Bytes(dhcpInfo.serverAddress);
try {
String apIpAddr = InetAddress.getByAddress(ipAddress).getHostAddress();
return apIpAddr;
} catch (UnknownHostException e) {
e.printStackTrace();
}
return null;
}
private static byte[] convert2Bytes(int hostAddress) {
byte[] addressBytes = { (byte)(0xff & hostAddress),
(byte)(0xff & (hostAddress >> 8)),
(byte)(0xff & (hostAddress >> 16)),
(byte)(0xff & (hostAddress >> 24)) };
return addressBytes;
}
- 1. Wifi接入点是否有IP地址?
- 2. iPhone - 如何找到连接的WiFi接入点的MAC地址?
- 3. 我可以通过AF_INET域套接字连接到ipv6地址吗?
- 4. 我可以为JDBC连接指定*源* IP地址吗?
- 5. 我可以通过WIFI-Direct连接Android和IOS吗?
- 6. Java连接到IP地址
- 7. 我可以通过编程获取连接到手机的wifi的MAC地址吗?
- 8. 连接到通过WIFI
- 9. MessageWebSocket用于连接的URI可以是IP地址,对吗?
- 10. 您可以使用WCF连接来获取您的连接IP地址吗?
- 11. 当连接到WiFi时获取ios设备的IP地址
- 12. 可以通过Wifi连接两个或更多的iPad吗?
- 13. 通过WiFi进行点对点连接
- 14. 是否可以看到连接到其他WIFI接入点的设备的MAC地址?
- 15. lidgren-网络库可以直接通过给定的IP地址点对点连接
- 16. 如何连接到WIFI接入点?
- 17. 手机的当前IP地址,无论是通过WiFi还是3G连接
- 18. 通过使用接入点的WiFi连接两个Android手机
- 19. Windows Phone 8和Android可以通过Wifi Direct连接吗?
- 20. 我可以在Android中找到我的接入点的MAC地址吗?
- 21. 我可以通过地址链接激活JavaScript吗?
- 22. 我想通过我的机器连接到互联网上的IP地址
- 23. 如何连接到本地IP地址
- 24. IP地址将不会连接到相同的IP地址
- 25. WIFI直接IP地址问题
- 26. 我可以看到与我的EC2实例连接的IP地址
- 27. WMI - 无法通过IP地址连接到某些计算机
- 28. 如何通过IP地址连接到设备Objective-C
- 29. 无法通过IP地址连接到MySQL
- 30. AWS私有IP地址服务器可以连接到同一VPC中的公共IP地址服务器吗?
的可能重复[是否WiFi接入点有一个IP地址?(http://stackoverflow.com/questions/4929438/does -wifi-access-points-have-an-ip-address) – kabuko
从这个副本中不清楚你所问的甚至是有意义的。 – EJP
@kabuko我指的接入点确实分配了一个IP地址。我可以ping通并连接到它。我的问题是,如果有可能从android应用程序获得这个IP。此外,重复的帖子不回答这个问题。 – user2597333