gpt4 book ai didi

android - 从android中的wifi热点获取IP

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:02 27 4
gpt4 key购买 nike

我想获取 android 设备通过 wifi 连接的 wifi 热点(从另一台计算机)的 IP,不是 android 的本地 IP。我在真实设备 中运行应用程序。我可以扫描所有 wifi 并获取它们的名称。

public class WifiConnectorActivity extends Activity {
TextView mainText;
WifiManager mainWifi;
WifiReceiver receiverWifi;
List<ScanResult> wifiList;
StringBuilder sb = new StringBuilder();
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mainWifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);

mainText = (TextView) findViewById(R.id.text);
mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
receiverWifi = new WifiReceiver();
if(!mainWifi.isWifiEnabled()){
mainWifi.setWifiEnabled(true);
}
registerReceiver(receiverWifi, new IntentFilter(
WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
mainWifi.startScan();
mainText.setText("\nStarting Scan...\n");
}



class WifiReceiver extends BroadcastReceiver {
public void onReceive(Context c, Intent intent) {
StringBuilder sb = new StringBuilder();
wifiList = mainWifi.getScanResults();
for(int i = 0; i < wifiList.size(); i++){
sb.append(new Integer(i+1).toString() + ".");
sb.append((wifiList.get(i)).toString());
sb.append("\n");
}

mainText.setText(sb);
}
}


}

当然,我可以使用这段代码获取本地IP:

public static String getLocalIpAddressString() {
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()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (Exception ex) {
Log.e("IPADDRESS", ex.toString());
}
return null;
}

例如,我可以看到android设备的本地IP是192.168.2.101,但是代码中如何获取wifi热点的IP是192.168.2.1。谢谢!

最佳答案

并非所有 WiFi 接入点都有 IP 地址!这不是必需的。它在不同的层上运行。

也就是说,您可以在 AP 的无线 MAC 上使用反向 ARP 来获取其 IP 地址(如果有的话)。另请注意,此 IP 有时与有线接口(interface)不同。

对于家用一体机无线路由器,您还可以检查 DHCP 分配的任何网关地址,但同样,这与接入点没有直接关联。

关于android - 从android中的wifi热点获取IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6561317/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com