有啥方法可以在我的 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 地址?的主要内容,如果未能解决你的问题,请参考以下文章

Mac电脑怎么可以蹭网,有啥软件

接入网络状态(ACCESS_NETWORK_STATE)和WIFI状态(ACCESS_WIFI_STATE)权限有啥区别?

在我的 iphone 应用程序中使用 wifi

ios 怎么判断wifi是不是接入了互联网

使用 QPython 连接到接入点?

wifi连接被拒绝是啥意思家里wifi拒绝接入