Я подаю Клиент-серверную заявку на мой Android
телефон.
Я создал a UDP
Сервер в Python
который находится и прислушивается к соединениям.
Я могу поместить любого сервер IP
адрес в непосредственно как 192.169.0.100
и это отправляет прекрасные данные. Я могу также вставить 192.168.0.255
и это находит сервер на 192.169.0.100
.
Действительно ли возможно получить широковещательный адрес сети, с которой подключен мой телефон на базе Android? Я только когда-либо собираюсь использовать это приложение на моем Wifi
сеть или другой Wifi
сети.
Удачи
Поскольку широковещательный IP-адрес - это текущий IP-адрес, но заканчивающийся цифрой 255, вы можете сделать что-то вроде этого:
public String getLocalIpAddress() {
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 (SocketException ex) {}
return null;
}
public static String getBroadcast() throws SocketException {
System.setProperty("java.net.preferIPv4Stack", "true");
for (Enumeration<NetworkInterface> niEnum = NetworkInterface.getNetworkInterfaces(); niEnum.hasMoreElements();) {
NetworkInterface ni = niEnum.nextElement();
if (!ni.isLoopback()) {
for (InterfaceAddress interfaceAddress : ni.getInterfaceAddresses()) {
return interfaceAddress.getBroadcast().toString().substring(1);
}
}
}
return null;
}