NAT

Тема в разделе "WASM.NETWORKS", создана пользователем 984259h, 25 янв 2012.

  1. 984259h

    984259h New Member

    Публикаций:
    0
    Регистрация:
    25 авг 2007
    Сообщения:
    194
    Всем привет
    Как программно узнать входит ли машина в нат ?
     
  2. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    540
    Сделать прямой HTTP-запрос к какому-нибудь серверу, который возвращает в ответе адрес подключившегося, например http://www.myip.ru, распарсить ответ и сравнить адрес c тем, что является интерфейсным в дефаулт-маршруте. Только запрос надо делать не готовыми средствами, не браузером и не функциями из его DLL-ок, а напрямую устанавливая TCP-соединения (иначе браузер или его DLL-ка могут совершить запрос через прописанный в настройках браузера/системы HTTP-прокси, и тогда вы увидите адрес прокси, даже если обладаете белым адресом).

    Еще лучше - если найдется сервак, который возвращает XML-ответ.
     
  3. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Dmitry_Milk
    Если дома стоит роутер, то будет облом ;)
     
  4. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    540
    Никакого облома. Либо роутер выполняет первичный нат, либо вторичный нат (если уже провайдер натит). Либо ни он ни провайдер НАТ не делают - тогда на компе для доступа в инет должен быть белый адрес, либо комп должен лазить в инет через HTTP-прокси или через сокс (а тогда надо коннектиться по специальному адресу). В любом случае, если комп натится (хоть один раз, хоть многократно) - адрес в accept на сервере будет отличаться от того адреса, от имени которого комп шлет пакеты (а шлет он их от имени IP-адреса на том интерфейсе, через который пакет пойдет к дестинейшну, если адресов несколько - то от того, в чьей сетке гейтвей, через который пойдет пакет (если под виндами), или от имени первичного(если UNIX)).
     
  5. 984259h

    984259h New Member

    Публикаций:
    0
    Регистрация:
    25 авг 2007
    Сообщения:
    194
    а вообще реально обойти NAT через тот самый порт меппинг или реальный обход ната это бекконнект ?
     
  6. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    порт мэппинг не всегда есть. поэтому только бэкконект