| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Сетевые технологии > Постоянный IP |
| Автор: Crait 10.1.2004, 22:58 |
| Вот сделал я очередной велосипед И работал он нормально в локальной сети, а в инете не работал До тех пор, пока мне не подсказали, что можно обратиться к провайдеру и за небольшие деньги обеспечить себе постоянный IP. Так я и сделал, и теперь клиенты нормально коннектятся к серверу на реальный ИП. Связь идет у меня по TCP/WinSock. Так вот вопрос : Можно ли связать два компа в инете без заморочек, связанных с получением постоянного IP ? И, самое главное, как ? |
| Автор: DENNN 12.1.2004, 11:11 |
| Вообще конечно постоянный ip-это благо, а не заморочка. Проблема скорее всего не просто в динамическом ip, а в том, что ты находишся за NAT'ом. Т.е. твой комп вместе с другими "висит" за шлюзом провайдера, и информация от конкретного адреса приходит к твоему компу только если он сам инициировал это соединение с внешним миром. Для всего инета все компьютеры, находящиеся за шлюзом представлены просто как этот компьютер. Естественно, с постоянным ип все внешние запросы приходят непосредственно на твой комп. Как вариант, можно попросить вместо ip направить на твою машину запросы на определенный порт, но это только в том случае, если твой сервер не использует порт из стандартно зарезервированных. |
| Автор: MuToGeN 12.1.2004, 11:39 |
| Речь о чем-то сродни децентрализации... Решения тут такие: Если знаешь подсеть, где должна находиться другая машина, то просто просканить на определенный порт. Другой вариант - при подключении к инету, например, коннеститься к некому FTP серверу, закидывать туда фаил со свом IP и смотреть, нет ли там других таких фаилов. В локальныых сетях это может решаться бродкастами/мультикастами, только в инете этот трафик обычно режется. Это все, конечно, только для тех случаев, когда ты получаешь свой IP от провайдера по DHCP и там нигде не поднята NAT. |
| Автор: DENNN 12.1.2004, 11:47 | ||
В этом случае могу предложить ещ один вчариант. Есть DNS сервер. При включении машины, она получает свой IP и на сервер по заране оговоренным правилам высылает мессагу со своим IP. DNS сервер принимает мессадж и на все последующие запросы в течении скажем 10 секунд дает ответ соответсвия этого имени и ip, если в течении следующих 10 секунд от машины пришел ответ, то это соответствие сохраняется, иначе считается что машины отсоединена от инета, и этот адрес более не возвращается. Главное условие - DNS сервер должен указывать в ответах короткое врем жизни. |
| Автор: Crait 12.1.2004, 13:47 |
| Благодарю всех, кто откликнулся. Но. Вы предлагаете в текущем сеансе определять свой текущий IP, сообщать его другой стороне (через FTP или как еще) и устанавливать связь на этот IP. Так вот, я пробовал сообщать другим свой IP (по телефону), определенный различным образом - взятый из hosts, или же тот, что определяет http://auto.jobest.ru/scan_port.php , результат один - нет коннекта. Почему - по причине наличия NAT у провайдера или еще почему-то, не знаю. Кстати, вместо FTP можно использовать почтовые ящики. Еще раз благодарю за ответы. |
| Автор: MuToGeN 12.1.2004, 14:02 | ||
Не знаю насчет самого простого способа узнать свой IP под виндами, но нечто ИМХО попроще посоветовать могу:
Ну а если NAT - то либо договариваться с провайдером, либо менять провайдера |
| Автор: Crait 12.1.2004, 14:18 |
| Данные от ipconfig тоже пытался использовать - нифига. |
| Автор: MuToGeN 12.1.2004, 14:32 |
| Как выглядит IP, что ipconfig выдает? |
| Автор: Crait 12.1.2004, 14:45 |
| Сейчас у меня постоянный IP, так что воспроизвести все сейчас не могу. А было, кроме 192.168.1.150 (это из hosts), по-моему 10.0.0.1 или 10.0.0.150 |
| Автор: MuToGeN 12.1.2004, 15:16 |
| NAT, однозначно. |
| Автор: Crait 12.1.2004, 15:27 |
| И чо, NAT теоретически непробиваем ? |
| Автор: Гость_DENNN 12.1.2004, 15:40 |
| соединение инициирует комп, находящийся за NAT |
| Автор: MuToGeN 12.1.2004, 15:40 |
| Теоретически можно зафорвардить траффик на какой-то порт шлюза из инета на какой-то порт твоей машины. |
| Автор: Crait 12.1.2004, 15:47 |
| Вобщем, насколько я понял, невозможно из своей программы преодолеть NAT не связываясь с переконфигурированием чего-то там у провайдера. |
| Автор: MuToGeN 12.1.2004, 16:00 |
| Именно так |
| Автор: Crait 12.1.2004, 16:07 |
| А ведь есть ряд чатов, работающих даже и из-под NAT. Тот же ICQ или MSN, скажем. Или они используют иные механизмы ? |
| Автор: DENNN 12.1.2004, 16:43 |
| Их сервер свободно виден из инета. А твой комп за шлюзом нет. |
| Автор: Crait 12.1.2004, 21:57 |
| OK. Я слышал, что в ICQ после соединения с сервером происходит обмен IP клиентов и далее они общаются между собой. |
| Автор: MuToGeN 13.1.2004, 11:53 |
| NAT работает примерно так: Шлешь ты пакет. Скажем, со своего 192.168.0.21:5478 на 213.180.194.129:80. Проходит оно через шлюз. Шлюз это дело отсылает на 213.180.194.129:80, но уже от своего имени, скажем, со своего порта 61587. И далее все то, что будет идти на порт шлюза 61587 извне, будет пересылаться на 192.168.0.21:5478, пока либо не наступит таймаут для UDP, либо не будет закрыт коннект для TCP. |
| Автор: Crait 13.1.2004, 20:08 |
| Так что, NAT меняет даже номер порта ? |
| Автор: MuToGeN 14.1.2004, 10:24 |
| Да. По крайней мере, о других реализациях этой технологии не знаю. |