Разрешение DNS в ASP.NET (MVC) на имя хоста / прокси - PullRequest
0 голосов
/ 16 декабря 2010

Хорошо, этот вопрос звучит немного глупо, я знаю.Я посмотрел на некоторые другие вопросы об этом, и я получаю противоречивые результаты, хотя я нахожу правильные ответы.Я постараюсь изложить это как можно проще.

У меня проблема, когда большое количество посетителей моего сайта используют ... Я пользуюсь термином популярный, интернет-сервис (AOL), чтобы получить к нему доступ.Это вне моего контроля.Это большая часть пользовательской базы, и я не могу помешать им использовать встроенный браузер (который происходит от IE).

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

У меня установлена ​​популярная система доски объявлений под названием «Invision Power Board».Он отслеживает IP-адреса людей и имеет функцию для определения IP-адреса.Итак, я могу нажать на IP, и он будет «разрешен» для хоста, например ..

IP XX.XXX.XX.XXX преобразуется в cache-dtc-ae16.proxy.aol.com.

Теперь я понимаю, что такоездесь происходитcache-dtc-ae16.proxy.aol.com - прокси, поэтому я ничего не могу поделать.Я смирился с этим.Код, который делает это, находится в IPB, и я не говорю на PHP, поэтому я в этом отделе SOL.

Я знаю, как получить IP-адрес пользователя.

HttpContext.Request.UserHostAddress

Что я хочу знать, так это ... с IP-адреса, как я могу «разрешить» этот прокси-сервер вC #?Я в основном хочу установить определенную часть кода, которая запрещает что-либо из прокси, который имеет .aol.в этом.

Имеет ли смысл то, что я пытаюсь понять, возможно ли это или возможно?Я могу полностью пропустить терминологию.Я верю Я понимаю это очень много.

UserHostAddress is the **client's** IP Address

Вот то, что я попробовал, в основном.

System.Net.Dns.GetHostEntry(System.Net.IPAddress.Parse(HttpContext.Request.UserHostAddress)).Aliases

Ответы [ 3 ]

2 голосов
/ 16 декабря 2010

вы пытаетесь получить доменное имя из ip? похоже, ваш ответ на этот вопрос здесь

IPHostEntry IpToDomainName = Dns.GetHostEntry("209.85.129.103");
string HostName = IpToDomainName.HostName; //it returns "fk-in-f103.1e100.net"
0 голосов
/ 16 декабря 2010
0 голосов
/ 16 декабря 2010

Это ограничение протокола TCP.Адрес является частью TCP-пакета, и, насколько мне известно, маршрутизаторы и коммутаторы, а также NAT и прокси-серверы изменяют адрес и выставляют свой собственный.

Насколько я знаю, обходить его невозможно.Адрес Прокси так же хорош, как ты собираешься получить.

Я полагаю, что даже MAC (физический) адрес пакета TCP будет прокси, но это то, на что нужно смотреть, хотя я не уверен, что вы можете получить его во время выполнения ASP.NET, поскольку запрос может поступать в нескольких пакетах TCP..

...