Проблема с IP-адресом - PullRequest
       17

Проблема с IP-адресом

1 голос
/ 30 марта 2010

Я создал игровое приложение TicTacToe (я использую протокол TCP), которое состоит из сервера и клиента (которые запускаются два раза для представления двух противников). У меня есть проблема, и я не могу найти решение для нее, поэтому я задаю этот вопрос. проблема заключается в том, что когда клиент пытается подключиться к серверу на моем компьютере, он никогда не подключается, поскольку IP-адрес (полученный на вкладке «Поддержка» из локального подключения в моих окнах) моего компьютера неверен. Я пытался получить свой IP-адрес на веб-сайтах, которые сообщали вам ваш IP, но я не работал. У меня проблема с определением моего IP-адреса, который любой компьютер может подключить ко мне из любого места. постскриптум Я использую роутер для подключения к интернету. спасибо.

Ответы [ 2 ]

3 голосов
/ 30 марта 2010

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

Локальный брандмауэр достаточно легко проверить, просто полностью отключите все брандмауэры, чтобы узнать, сможете ли вы подключиться к localhost. Если вы не можете соединиться с полностью отключенными брандмауэрами, это ваш код, который нужно исправить в первую очередь.

Если это сработает, поэкспериментируйте с разрешением вашему (серверному) приложению через брандмауэр принимать трафик. Клиентское приложение, открывающее соединение, не будет (не должно) иметь проблемы с брандмауэром само по себе, так как это запрашиваемый трафик, которому брандмауэры обычно не мешают.

Если / когда вы можете подключиться к локальному хосту, вы можете попробовать подключиться через Интернет, через маршрутизатор. Скорее всего, ваша проблема в том, что ваш маршрутизатор не перенаправляет порт, который вы открываете, на ваш компьютер. Я сам когда-либо реализовывал переадресацию портов вручную, и вам, вероятно, стоит посмотреть , что это такое и зачем это нужно, прежде чем связываться с вещами. По сути, вы хотите, чтобы клиент подключался к вашему общедоступному ip (что вы нашли на whatsmyip.org или где-либо еще), а ваш маршрутизатор переадресовывал на ваш ip локальной сети (что вы найдете на вкладке поддержки конфигурации локальной сети). Пошаговые инструкции для этого относятся к конкретному маршрутизатору, но обычно просты (обычно на странице управления маршрутизатором есть вкладка «брандмауэр» и / или «дополнительные» или что-то в этом роде).

В конечном итоге вы можете попытаться реализовать upnp, который не кажется слишком сложным из быстрого поиска в Google , но, вероятно, он слишком сложен для этапа обучения, на котором вы, вероятно, находитесь.

3 голосов
/ 30 марта 2010
            string procCall = "http://project-intercept.com/ip.php";
            WebClient wc = new WebClient();
            UTF8Encoding utf8 = new UTF8Encoding();
            string requestHtml = "";
            requestHtml = utf8.GetString(wc.DownloadData(procCall));                
            return requestHtml;

Вы можете использовать project-intercept.com/ip.php (ведь это мой сайт, посвященный античитам) или использовать whatsmyip.org/ip.php (я думаю, это URL). В основном любой URL, который является эхом, является просто ip. Если вы хотите разместить php самостоятельно, создайте php-файл и добавьте

echo $_SERVER['HTTP_CLIENT_IP'];

или

echo $_SERVER['REMOTE_ADDR'];
...