Широковещательный адрес Android

Я подаю Клиент-серверную заявку на мой Android телефон.

Я создал a UDP Сервер в Python который находится и прислушивается к соединениям.

Я могу поместить любого сервер IP адрес в непосредственно как 192.169.0.100 и это отправляет прекрасные данные. Я могу также вставить 192.168.0.255 и это находит сервер на 192.169.0.100.

Действительно ли возможно получить широковещательный адрес сети, с которой подключен мой телефон на базе Android? Я только когда-либо собираюсь использовать это приложение на моем Wifi сеть или другой Wifi сети.

Удачи

8
задан Onik 26 November 2015 в 12:14
поделиться

1 ответ

Поскольку широковещательный 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;
}
0
ответ дан 5 December 2019 в 07:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: