Внутренний IP, QNetworkInterface или что-то другое? |
Здравствуйте, гость ( Вход | Регистрация )
Внутренний IP, QNetworkInterface или что-то другое? |
bigory |
17.10.2010, 13:53
Сообщение
#1
|
Студент Группа: Участник Сообщений: 77 Регистрация: 10.10.2010 Пользователь №: 2099 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем доброе время суток!
Вот есть код, который определяет внутренний IP:
Проблема в том, что не везде он определяет его правильно. У меня Win XP SP3, оператор Стрим. У меня определяет правильно, а вот посылаю на тест другим людям, у которых другой оператор, другие версии виндоуса, так они говорят что у них внутренний IP определяется неправильно. Есть ли другой способ определить внутренний IP? Очень желательно, чтоб он определялся правильно. |
|
|
Sokoloff |
21.10.2010, 11:22
Сообщение
#2
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
На мой взгляд сама постановка вопроса не верная или не понятна. Что такое "локальный IP", локальный относительно чего? Если не смотрящий в инет, то у машины может быть таких интерфейсов/адресов несколько.
Поясни для чего это нужно? Если чтоб отправить адрес на какой-то сервер, чтоб потом он смог связаться с клиентом, то нужно искать адрес из той же подсети что и адрес сервера. Например: Сервер имеет IP 192.168.77.10 и маску 255.255.255.0 Клиент имеет следующие IP 192.168.1.5 91.76.134.250 192.168.77.1 192.168.38.1 127.0.0.1 Перебираем все эти адреса и сравниваем с адресом сервера с учетом маски, в данном случае подойдет только 192.168.77.1 . Надо продумать что делать в исключительных вариантах: 1) Может оказаться что ни один адрес не подошел под маску, т.е. нет прямого маршрута от сервера к клиенту. Что делать? 2) Под маску могут подпасть сразу несколько адресов, комп имеет несколько сетевых карт в одну подсеть, или для для одной карточки установлено несколько адресов. Что делать, брать первый попавшийся? Или под локальным адресом ты понимаешь серые адреса. Тогда проверяй по их маскам, опять же возможны два исключительных случая. Сообщение отредактировал Sokoloff - 21.10.2010, 11:23 |
|
|
Текстовая версия | Сейчас: 18.1.2025, 13:55 |