#java #networking #ip #user-input #nic
#java #сеть #ip #пользовательский ввод #сетевой адаптер
Вопрос:
У меня есть следующий пример кода. Чего я хотел бы достичь, так это иметь возможность динамически выбирать, к какому IP-адресу подключаться, из двух разных вариантов, я хочу иметь возможность выбирать это на основе пользовательского ввода, но я точно не знаю, как этого добиться.
У меня есть сильное подозрение, что он должен использовать конструктор метода Socket (), в частности, первый экземпляр, который имеет подпись с 4 аргументами, которые должны позволить вам указать, используя общедоступный сокет (InetAddress address, int port, InetAddress localAddr, int LocalPort), вызывает метод IOException, вы можете использовать третий параметр, чтобы указать, какой IP-адрес использовать.
Я также слышал хорошие отзывы о методе bind ()
import java.io.*;
import java.net.*;
import java.util.*;
import static java.lang.System.out;
public class ListNets {
public static void main(String args[]) throws SocketException {
Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
for (NetworkInterface netint : Collections.list(nets))
displayInterfaceInformation(netint);
}
static void displayInterfaceInformation(NetworkInterface netint) throws SocketException {
out.printf("Display name: %sn", netint.getDisplayName());
out.printf("Name: %sn", netint.getName());
Enumeration<InetAddress> inetAddresses = netint.getInetAddresses();
for (InetAddress inetAddress : Collections.list(inetAddresses)) {
out.printf("InetAddress: %sn", inetAddress);
}
out.printf("n");
}
}
Этот код сверху выдает IP-адреса, но он также возвращает кучу «бесполезной» информации, такой как адрес Ethernet, который мне не нужен, как изолировать только интересующие меня IP-адреса?
Кроме того, какой эффективный способ продемонстрировать мой IP-адрес? Возможно, подключитесь к whois.com
Ответ №1:
Этот код сверху выдает IP-адреса, но он также возвращает кучу «бесполезной» информации, такой как адрес Ethernet, который мне не нужен, как изолировать только интересующие меня IP-адреса?
Просто. Не печатайте ничего, кроме IP-адресов. Удалите код, который печатает что-либо еще.
Что касается вашего «сильного подозрения», вам сказали в двух отдельных предыдущих вопросах, что вам следует использовать Socket
конструктор с четырьмя аргументами.
Комментарии:
1. совершенно верно, и тем самым у меня возникло действительно очень сильное подозрение!
2. но что более важно, я пытался закомментировать весь этот мусор, но это бесполезно, я все еще получаю кучу бесполезного дерьма, я пробовал что-то подобное, но увы… неэффективно! если (InetAddress == ЧТО-ТО?!)
3. чувак, пожалуйста, помоги мне! я знаю, что это в ваших силах!