我正在编写一个 android 应用程序,它应该通过 WiFi 发送广播数据包。
目前我可以从 WifiManager.getConnectionInfo().getIpAddress()
获取设备的 IP 地址,并通过简单地将最后一位数字替换为 0 来猜测广播地址。但我真的不知道喜欢这个解决方案。
什么是正确的方法?
最佳答案
尝试这样的事情:
public static String getBroadcast(){
String found_bcast_address=null;
System.setProperty("java.net.preferIPv4Stack", "true");
try
{
Enumeration<NetworkInterface> niEnum = NetworkInterface.getNetworkInterfaces();
while (niEnum.hasMoreElements())
{
NetworkInterface ni = niEnum.nextElement();
if(!ni.isLoopback()){
for (InterfaceAddress interfaceAddress : ni.getInterfaceAddresses())
{
found_bcast_address = interfaceAddress.getBroadcast().toString();
found_bcast_address = found_bcast_address.substring(1);
}
}
}
}
catch (SocketException e)
{
e.printStackTrace();
}
return found_bcast_address;
}
关于android - 从 ip 地址获取广播地址的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13431675/