Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Как узнать свой IP при использование раутера?


Автор: sektor 24.9.2008, 17:44
Пишу проект на С#. Часть проекта, небольшая програмка работает на компьютере клиента, и переодически отсылает на определённый IP(сервер) свой IP. Это нужно в том случае, если у клиента динамический IP. Нашёл в одной из книг  код "клиент-сервер", немного изменил его и на данном этапе если у клиента нет раутера а только модем, всё работает, сервер получает его IP. Но вот если клиент сидит за раутером, то я получаю внутренний IP, который выдаёт раутер. Как в принципе решается эта проблема? 
Искал в гугле, нашёл что-то похожее--человек на дельфи спрашивал тот же вопрос, ему посоветовали отсылать запрос на какой-нибудь сервер, и когда он будет возврашать ответ, брать оттуда свой IP. Это единственное решение? С помощью самого С# как-то можно сделать так, чтоб видеть внешний IP?
Ещё есть идея, но я незнаю как её решить. Когда учили TCP/IP то  если я не ошибаюсь, когда отправляется пакет данных, то в нём самом есть IP-адрес куда он идёт и IP-адрес откуда. Можно как-то оттуда его взять? Хотя в принципе, если клиент сидит за раутером то опять же наверное получу внутренний IP. :(
Народ, плиз помогите, в каком направление вообще копать. 

Автор: Akina 24.9.2008, 17:55
Цитата(sektor @  24.9.2008,  18:44 Найти цитируемый пост)
на компьютере клиента, и переодически отсылает на определённый IP(сервер) свой IP. Это нужно в том случае, если у клиента динамический IP.

Э-э-э... а зачем? сервер и сам может своими чисто средствами получить IP клиента, причем именно внешний. И не надо для этого клиента тормошить.

Автор: sektor 24.9.2008, 18:16
Цитата(Akina @ 24.9.2008,  17:55)
Цитата(sektor @  24.9.2008,  18:44 Найти цитируемый пост)
на компьютере клиента, и переодически отсылает на определённый IP(сервер) свой IP. Это нужно в том случае, если у клиента динамический IP.

Э-э-э... а зачем? сервер и сам может своими чисто средствами получить IP клиента, причем именно внешний. И не надо для этого клиента тормошить.



Каким образом?



Смысл проекта, если человек хочет держать на своём компьютерe сайт и у него динамический IP, предоставлять ему услугу, чтоб когда 
кто-то хочет к нему зайти на сайт, он бы шёл сначала на мой сервер узнавал его IP и тогда переходил бы к нему на сайт.

П.С. Если я не ошибаюсь, такие бесплатные услугу уже давно есть и там реализиция сделанна именно так--на компе клиента работает прога, которая переодически отправляет IP клиента на сервер.

Автор: Akina 24.9.2008, 18:28
Цитата(sektor @  24.9.2008,  19:16 Найти цитируемый пост)
Смысл проекта, если человек хочет держать на своём компьютерe сайт и у него динамический IP, предоставлять ему услугу, чтоб когда кто-то хочет к нему зайти на сайт, он бы шёл сначала на мой сервер узнавал его IP и тогда переходил бы к нему на сайт.

Рассказываю. Клиентская часть состоит из 1 формы. На ней один линк на http://www.dyndns.com/services/dns/dyndns/ и две кнопки - About и Exit. Серверная часть не нужна вообще.

Автор: sektor 24.9.2008, 19:46
Цитата(Akina @ 24.9.2008,  18:28)
Цитата(sektor @  24.9.2008,  19:16 Найти цитируемый пост)
Смысл проекта, если человек хочет держать на своём компьютерe сайт и у него динамический IP, предоставлять ему услугу, чтоб когда кто-то хочет к нему зайти на сайт, он бы шёл сначала на мой сервер узнавал его IP и тогда переходил бы к нему на сайт.

Рассказываю. Клиентская часть состоит из 1 формы. На ней один линк на http://www.dyndns.com/services/dns/dyndns/ и две кнопки - About и Exit. Серверная часть не нужна вообще.

У меня с английским плохо, но из того что я понял нужно создать хост и всё равно надо скачать прогу, которая будет обновлять мой IP.
Вот собственно её скрин:

user posted image


P.S. Есть ещё один похожий сервер NoIP. Проверил--принцип тот же. 
Регистрируешь хост. Скачиваешь то-же похожую прогу, для обновления IP.




Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)