Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Запутался с IP адресами


Автор: 31416 19.7.2007, 09:48
Задумал написать программу для обмена информацией между двумя компьютерами подключенными к интернет,
на основе WINSOCK. Алгоритм в общих чертах представляю так: 

1. подключить оба компьютера к интернет
2. узнать IP адрес серверного компьютера
3. в клиентском подключиться к IP адресу (+порт) серверного компьютера.

но сразу столкнулся с непониманием того как узнать нужный IP адрес сервера, можно
ли это сделать как нибудь программно во время установленного соединении с интернет?

т.е типа - запускаем сервер, узнаем свой интернет IP, передаем его клиенту - он уже зная его конектится к нам...

Такая ситуация:

соединяюсь я с интернет, затем щелкаю на значке соединения.
там есть два адреса:
1. IP адрес клиента
2. IP адрес сервера

существует такой сервис http://yoip.ru/ - узнает IP адрес.
этот IP адрес не совпадает со 2-м адресом (тем что пишется в моем соединении)

как я понял - первые два адреса для обмена моего компа с компом провайдера..т.е НЕ для глобальной интернет связи
и есть еще другой IP адрес для глобальной связи... т.е через него провайдер взаимодействует с интернет..
он и выдается в http://yoip.ru/.. все я верно понимаю или нет?

еще заметил что если запускаю прогу TrafficCompressor - то адрес выдаваемый 
http://yoip.ru/  меняется уже на другой. (т.е видимо на адрес сервера TrafficCompressor)

с IP совсем запутался..какой именно нужно передать клиенту для связи?

поясните плиз - в чем назначение каждого адреса и как в общих чертах на их основе функционирует связь?

Автор: jonie 19.7.2007, 10:23
мы не умеем гадать. малолли как вы подключены -- зависит от провайдера. Мб у вас NAT вообще, а коннект через VPN туннель....
Т.е. vpn туннель до VPN сервера провайдера, а далее nat в инет....

Автор: pakulo 19.7.2007, 19:40
Цитата

т.е типа - запускаем сервер, узнаем свой интернет IP, передаем его клиенту - он уже зная его конектится к нам...

smile Можно и не передавать свой IP клиенту, если клиент будет реализован по принципу сервера (а без этого так, как ты описал, никак), то через функцию accept ты сможешь узнать и IP, и порт того, кто к тебе подсоединился.
Вопрос: зачем это надо?!
Проще в клиенте сделать возможность ввода IP (и порта, но порт можно сделать стандартный) либо через опции, либо через файл настроек, так будет намного проще.

А на счет IP: http://www.szms.ru/index.php?option=com_content&task=view&id=46&Itemid=59

Автор: witex 20.7.2007, 09:18
Если ты клиент! Тебе ни чего не передадут! Если ты не соеденился с сервером!
Тобишь тебе надо сделать из воего клиента вначале сервер! Который принимает инфу.

А как сервер узнает адрес клиента?? я не понимаю!!! Ты что то не то мутишь! В любой программе ты или сам вводишь адрес сервера или он уже прописанн статически! В коде программы!

Автор: GremlinProg 20.7.2007, 13:39
31416, тема уже обсуждалась недавно, воспользуйся поиском

Добавлено через 5 минут и 27 секунд
http://forum.vingrad.ru/index.php?showtopic=149234&view=findpost&p=1121172

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