Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать свой IP-адрес? Узнать IP моего сервера 
V
    Опции темы
maks991
Дата 13.8.2010, 06:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 8.8.2010

Репутация: нет
Всего: нет



Я создаю сервер на своём компьютере. Создаю объект ServerSocket и всё такое. Так вот, хочется в JLabel при запуске сервера отображать IP-адрес моего компьютера в сети. Я где-то находил такой способ: типа есть объект ServerSocket и у него вызвать метод getInetAddress(). Но, когда я так делаю, получаю нули сплошные :( Ещё здесь же, на этом форуме была подобная тема, там сказали делать через опрос сайта для узнавания ip. Но это ведь бред, явно можно с помощью джавы узнать как-то... Заранее спасибо за помощь.

Добавлено через 2 минуты и 32 секунды
Вот с помощью команды ipconfig -all спокойно можно узнать в командной строке windows. Она же как-то умудряется узнать без сайтов всяких. Неужели джава такая фигня, что не может так же сделать..
PM MAIL   Вверх
AlexeyVorotnikov
Дата 13.8.2010, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 18.6.2007
Где: Москва

Репутация: 1
Всего: 18



У одного компьютера может быть несколько IP адресов.
Чтобы узнать все IP адреса, можно использовать что-то вроде
Код

            Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces();
            while (networkInterfaces.hasMoreElements()) {
                NetworkInterface networkInterface = (NetworkInterface) networkInterfaces.nextElement();
                System.out.println("networkInterface.displayName=" + networkInterface.getDisplayName());
                System.out.println("networkInterface.name=" + networkInterface.getName());
                Enumeration inetAddresses = networkInterface.getInetAddresses();
                while (inetAddresses.hasMoreElements()) {
                    InetAddress inetAddress = (InetAddress) inetAddresses.nextElement();
                    System.out.println("networkInterface.[" + networkInterface.getName() + "].inetAddress=" + inetAddress);
                }
                System.out.println("-----------------------------------");


Можно ещё попробовать использовать InetAddress.getLocalHost(), но на разных операционках он ведёт себя по-разному. У меня под Linux'ом он всегда выдаёт 127.0.0.1. А под виндой нормальный адрес.


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
maks991
Дата 13.8.2010, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 8.8.2010

Репутация: нет
Всего: нет



Во! Спасибо. Вы очень помогли smile А то повсюду только и вижу: "Надо опрашивать сайт для определения айпи"... Очевидно, что в джаве есть методы, чтобы узнать и без этого. Ещё раз спасибо.

Добавлено через 3 минуты и 24 секунды
А вы не знаете, можно ли как-то узнать основной ip? Ну то есть вот когда в командной строке выводишь инфу по ipconfig -all, там рядом с каким-то айпишником пишется "(Основной)". Просто вот ваш метод да, мне приемлем, там нужный айпи выдаётся. Но и куча всего лишнего впридачу. Можно ли как-то именно айпишник основной?...
PM MAIL   Вверх
AlexeyVorotnikov
Дата 16.8.2010, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 18.6.2007
Где: Москва

Репутация: 1
Всего: 18



Цитата(maks991 @  13.8.2010,  13:41 Найти цитируемый пост)
А вы не знаете, можно ли как-то узнать основной ip? Ну то есть вот когда в командной строке выводишь инфу по ipconfig -all, там рядом с каким-то айпишником пишется "(Основной)". Просто вот ваш метод да, мне приемлем, там нужный айпи выдаётся. Но и куча всего лишнего впридачу. Можно ли как-то именно айпишник основной?... 

Честно говоря, не знаю. Мне кажется, это какая-то винусово-специфическая фича. Под Linux'ом ничего такого не пишется.


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.