используя httpListener для создания собственного сайта с URL в качестве моего IP-адреса - PullRequest
2 голосов
/ 25 февраля 2012

Я хочу создать сайт с URL в качестве моего IP-адреса [ex: 192.X.X.X]

Этот веб-сайт будет отправлять сообщение " HELLO THERE " любому пользователю, который обращается к моему URL.

Я использую следующий код для этого! [Это просто базовый код без потоков]

class listenToHTTP
{
    HttpListener _listner;
    public void start()
    {
        _listner = new HttpListener();
        _listner.Prefixes.Add("http://localhost/");//default port 80
        _listner.Start();
    }
    public void process()
    {
         while (true)
         {
            HttpListenerContext context = _listner.GetContext();
            byte[] output = Encoding.ASCII.GetBytes("HELLO THERE");
            context.Response.ContentEncoding = Encoding.ASCII;
            context.Response.ContentLength64 = output.Length;
            context.Response.OutputStream.Write(output, 0, output.Length);

          }
     }
}

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

Он отлично показывает ответ "ПРИВЕТ ТАМ", когда я использую http://localhost/ в качестве URL.

Но какой IP-адрес будут использовать другие люди, чтобы они могли получить доступ к моему простому веб-сайту.

Я попробовал свой IP-адрес в браузере, но он не работает .

Ответы [ 3 ]

4 голосов
/ 25 февраля 2012

При выполнении этого следует обратить внимание на две вещи:

  • Если вы прослушиваете адрес локального хоста, только локальный хост сможет подключиться к вашему HttpListener.Вам нужно добавить префикс с http://192.X.X.X/ (где 192.XXX - это ваш локальный IP-адрес, конечно) и прослушать его.Это может (в зависимости от вашей операционной системы) потребовать, чтобы вы работали от имени администратора, по крайней мере, если вы хотите сделать это на порту <1024. Вы можете проверить, работает ли это, подключившись к вашему IP # с локального компьютера вместо локальногоадрес. </p>

  • Если вы используете Windows, брандмауэр может помешать.Если это кажется (то есть вы можете подключиться к своему IP # с локального компьютера, но ничто другое не может подключиться), вам нужно открыть порт вручную.В Google есть множество советов, как это сделать.

1 голос
/ 25 февраля 2012

@ Ответ Иоахима уже достаточно хорош.Я хотел бы добавить немного больше ...

  1. Вам необходимо публично раскрыть вышеупомянутый IP-адрес, чтобы получить доступный для других URL.
  2. В случае раскрытия URLтолько для вашего домена (т. е. в случае интрасети), обратитесь к системному администратору для настройки IP-адреса в интрасети.
  3. Доступ к настройкам локального хоста ограничен только вашей машиной.
  4. Убедитесь, чтопроверьте ограничение брандмауэра на доступность URL-адреса для реализации пункта 1 или 2

Для получения дополнительной информации проверьте ссылку для HTTPListener

  1. HTTPListener
  2. HTTPListener
  3. HTTPListener
0 голосов
/ 06 декабря 2012

Проблема заключалась в том, что я имел в виду адрес private network, который local соответствует network и никем не доступен вне , что private network ..

Это диапазон ip-address, которые используются в частной сети, поэтому системы с этим адресом не могут быть сервером или хостом веб-сайта.

10.0.0.0 to 10.255.255.255

172.16.0.0 to 172.31.255.255

192.168.0.0 to 192.168.255.255

Вам следует использовать публичный адрес ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...