有啥方法可以在我的 wifi 网络中找到最近的接入点的 IP 地址?
Posted
技术标签:
【中文标题】有啥方法可以在我的 wifi 网络中找到最近的接入点的 IP 地址?【英文标题】:Is there any method to find the ip address of nearest access point in my wifi network?有什么方法可以在我的 wifi 网络中找到最近的接入点的 IP 地址? 【发布时间】:2014-01-31 20:30:49 【问题描述】:我使用 Insider 和 kismac 来检查我网络中的 wifi 室内和室外接入点。但是这两个工具都没有提供有关当前连接的接入点 IP 的任何信息。可以看出,Windows 中的 netstumbler 可以选择显示 ip 地址和子网,但尽管它们有字段,但它不显示任何内容。我找不到任何满足此要求的应用程序。
有什么方法可以在我的 wifi 网络中找到最近的接入点的 IP 地址吗?以编程方式还是有任何应用程序?
在python、objective c、java中是否有任何方法请求ap的ip地址返回它。
我使用 osx 10.9
【问题讨论】:
不知道 osx 但是对于 java 你可以看到这个例子androidsnippets.com/scan-for-wireless-networks 我尝试了android sn-p。它有效,但没有给出我想要的。我想要的是ap的IP地址。就像我说的那样,它给出了 mac 地址、ssid、频率等……还没有 ip…… 不连接就无法获取 ap 的 ip。 【参考方案1】:不连接就无法获取AP的ip。
您可以通过以下方式获取已连接AP的ip
DhcpInfo dhcp;
WifiManager wifii;
wifii = (WifiManager) getSystemService(Context.WIFI_SERVICE);
dhcp = wifii.getDhcpInfo();
s_dns1 = "DNS 1: " + String.valueOf(dhcp.dns1);
s_dns2 = "DNS 2: " + String.valueOf(dhcp.dns2);
s_gateway = "Default Gateway: " + String.valueOf(dhcp.gateway);
s_ipAddress = "IP Address: " + String.valueOf(dhcp.ipAddress);
s_leaseDuration = "Lease Time: " + String.valueOf(dhcp.leaseDuration);
s_netmask = "Subnet Mask: " + String.valueOf(dhcp.netmask);
s_serverAddress = "Server IP: " + String.valueOf(dhcp.serverAddress);
【讨论】:
我在网络中。它可以工作,但不能满足我的要求。此代码显示所有详细信息,例如 dns my ip server ip subnet mask 。但它没有提供我连接到此路由器的室外接入点的详细信息。我想要的是最近的室外接入点的 ip 看,接入点有助于将无线设备连接到有线网络。室外我的意思是接入点在建筑物外面。室内接入点意味着它在建筑物内。这些接入点通过交换机连接到路由器。使用上面的代码时,我得到了路由器的 ip 和其他详细信息,例如子网掩码。我正在寻找的是,当我在接入点附近打开 wifi 并使用任何工具或代码(我也是网络成员)时,我应该获得室外/室内接入点的 ip我连接到不是路由器。 osx 中的 ip-scanner 将列出我网络中的所有设备,包括接入点。我正在寻找的是一个应用程序或代码,它会显示我当前连接到的接入点的 IP 地址。有什么办法吗。 itunes.apple.com/in/app/ip-scanner/id404167149?mt=12【参考方案2】:使用以下方式实现
public String getIpAddr()
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ip = wifiInfo.getIpAddress();
String ipString = String.format(
"%d.%d.%d.%d",
(ip & 0xff),
(ip >> 8 & 0xff),
(ip >> 16 & 0xff),
(ip >> 24 & 0xff));
return ipString;
请注意:您需要在您的 AndroidManifest.xml 中添加 android.permission.INTERNET 和 android.permission.ACCESS_WIFI_STATE 以访问代码。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
对于谷歌玩类似类型的应用,请查看https://play.google.com/store/apps/details?id=com.roamingsoft.manager&hl=en
【讨论】:
Mmmh ... OP 要求使用 OSX,我敢打赌getIPAddress()
是不是 AP 的客户端 IP ...
需要发现的是最近接入点的IP,而不是客户端的IP。是否有任何方法编程盟友或其他方法,这可以在osx中完成以上是关于有啥方法可以在我的 wifi 网络中找到最近的接入点的 IP 地址?的主要内容,如果未能解决你的问题,请参考以下文章
接入网络状态(ACCESS_NETWORK_STATE)和WIFI状态(ACCESS_WIFI_STATE)权限有啥区别?