Многопоточный парсер Whois на c# ZennoPoster, как ?

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 165
Баллы
113
помогите организовать универсальный многопоточный парсер Whois на c# в зенке. Нашел вроде как рабочий код (источник):
Код:
string txtResponse = "";
            string strResponse = "";
            TcpClient tcpWhois = new TcpClient("whois.internic.net", 43);
            NetworkStream nsWhois = tcpWhois.GetStream();
            BufferedStream bfWhois = new BufferedStream(nsWhois);
            StreamWriter swSend = new StreamWriter(bfWhois);
                         swSend.WriteLine("google.com");
                         swSend.Flush();
            StreamReader srReceive = new StreamReader(bfWhois);
            while ((strResponse = srReceive.ReadLine()) != null)
            {
                txtResponse += strResponse + "\r\n";
            }
            tcpWhois.Close();
            Console.WriteLine(txtResponse);
Есть списки соотвествий Whois для каждой зоны:
<?xml version="1.0" encoding="utf-8" ?>
<ourdomains>
<domain id="ru" country="Russia">whois.ripn.net</domain>
<domain id="biz" country="Business">whois.biz</domain>
<domain id="com" country="Commercial organizations">whois.verisign-grs.com</domain>
<domain id="info" country="Generic">whois.afilias.net</domain>
<domain id="net" country="">whois.verisign-grs.com</domain>
<domain id="org" country="">whois.pir.org</domain>
<domain id="ac" country="Ascension Island">whois.nic.ac</domain>
<domain id="ae" country="United Arab Emirates">whois.aeda.net.ae</domain>
<domain id="ag" country="Antigua and Barbuda">whois.nic.ag</domain>
<domain id="ai" country="Anguilla">whois.ai</domain>
<domain id="am" country="Armenia">whois.amnic.net</domain>
<domain id="as" country="American Samoa">whois.nic.as</domain>
<domain id="at" country="Austria">whois.nic.at</domain>
<domain id="au" country="Australia">whois.audns.net.au</domain>
<domain id="be" country="Belgium">whois.dns.be</domain>
<domain id="bg" country="Bulgaria">whois.register.bg</domain>
<domain id="bj" country="Benin">whois.nic.bj</domain>
<domain id="bo" country="Bolivia">whois.nic.bo</domain>
<domain id="br" country="Brazil">whois.registro.br</domain>
<domain id="ca" country="Canada">whois.cira.ca</domain>
<domain id="cc" country="Cocos (Keeling) Islands">ccwhois.verisign-grs.com</domain>
<domain id="ch" country="Switzerland">whois.nic.ch</domain>
<domain id="ci" country="Cote d'Ivoire">whois.nic.ci</domain>
<domain id="cl" country="Chile">whois.nic.cl</domain>
<domain id="cn" country="People's Republic of China">whois.cnnic.cn</domain>
<domain id="cx" country="Christmas Island">whois.nic.cx</domain>
<domain id="cz" country="Czech Republic">whois.nic.cz</domain>
<domain id="de" country="Germany">whois.denic.de</domain>
<domain id="dk" country="Denmark">whois.dk-hostmaster.dk</domain>
<domain id="dm" country="Dominica">whois.nic.dm</domain>
<domain id="ec" country="Ecuador">whois.nic.ec</domain>
<domain id="ee" country="Estonia">whois.eenet.ee</domain>
<domain id="eu" country="European Union">whois.eu</domain>
<domain id="fi" country="Finland">whois.ficora.fi</domain>
<domain id="fr" country="France">whois.nic.fr</domain>
<domain id="gd" country="Grenada">whois.adamsnames.com</domain>
<domain id="gg" country="Guernsey">whois.gg</domain>
<domain id="gi" country="Gibraltar">whois2.afilias-grs.net</domain>
<domain id="gs" country="South Georgia and the South Sandwich Islands">whois.nic.gs</domain>
<domain id="gy" country="Guyana">whois.registry.gy</domain>
<domain id="hk" country="Hong Kong">whois.hkirc.hk</domain>
<domain id="hn" country="Honduras">whois2.afilias-grs.net</domain>
<domain id="ht" country="Haiti">whois.nic.ht</domain>
<domain id="ie" country="Ireland">whois.domainregistry.ie</domain>
<domain id="il" country="Israel">whois.isoc.org.il</domain>
<domain id="in" country="India">whois.inregistry.net</domain>
<domain id="io" country="British Indian Ocean Territory">whois.nic.io</domain>
<domain id="ir" country="Iran">whois.nic.ir</domain>
<domain id="is" country="Iceland">whois.isnic.is</domain>
<domain id="it" country="Italy">whois.nic.it</domain>
<domain id="je" country="Jersey">whois.je</domain>
<domain id="jp" country="Japan">whois.jprs.jp</domain>
<domain id="ke" country="Kenya">whois.kenic.or.ke</domain>
<domain id="ki" country="Kiribati">whois.nic.ki</domain>
<domain id="kp" country="North Korea">whois.kcce.kp</domain>
<domain id="kr" country="South Korea">whois.nic.or.kr</domain>
<domain id="kz" country="Kazakhstan">whois.nic.kz</domain>
<domain id="la" country="Laos">whois.nic.la</domain>
<domain id="li" country="Liechtenstein">whois.nic.li</domain>
<domain id="lt" country="Lithuania">whois.domreg.lt</domain>
<domain id="lu" country="Luxembourg">whois.dns.lu</domain>
<domain id="lv" country="Latvia">whois.nic.lv</domain>
<domain id="ly" country="Libya">whois.nic.ly</domain>
<domain id="ma" country="Morocco">whois.iam.net.ma</domain>
<domain id="md" country="Moldova">whois.nic.md</domain>
<domain id="me" country="Montenegro">whois.nic.me</domain>
<domain id="mg" country="Madagascar">whois.nic.mg</domain>
<domain id="mn" country="Mongolia">whois.nic.mn</domain>
<domain id="mp" country="Northern Mariana Islands">whois.nic.mp</domain>
<domain id="ms" country="Montserrat ">whois.nic.ms</domain>
<domain id="mu" country="Mauritius">whois.nic.mu</domain>
<domain id="mx" country="Mexico">whois.mx</domain>
<domain id="my" country="Malaysia">whois.domainregistry.my</domain>
<domain id="na" country="Namibia">whois.na-nic.com.na</domain>
<domain id="ng" country="Nigeria">whois.nic.net.ng</domain>
<domain id="nl" country="Netherlands">whois.domain-registry.nl</domain>
<domain id="no" country="Norway">whois.norid.no</domain>
<domain id="nu" country="Niue">whois.nic.nu</domain>
<domain id="nz" country="New Zealand">whois.srs.net.nz</domain>
<domain id="pe" country="Peru">kero.yachay.pe</domain>
<domain id="pl" country="Poland ">whois.dns.pl</domain>
<domain id="pm" country="Saint Pierre and Miquelon">whois.nic.pm</domain>
<domain id="pr" country="Puerto Rico ">whois.nic.pr</domain>
<domain id="pt" country="Portugal ">whois.dns.pt</domain>
<domain id="re" country="Reunion">whois.nic.re</domain>
<domain id="ro" country="Romania ">whois.rotld.ro</domain>
<domain id="sa" country="Saudi Arabia">whois.nic.net.sa</domain>
<domain id="sb" country="Solomon Islands">whois.nic.net.sb</domain>
<domain id="sc" country="Seychelles">whois2.afilias-grs.net</domain>
<domain id="se" country="Sweden">whois.iis.se</domain>
<domain id="sg" country="Singapore">whois.sgnic.sg</domain>
<domain id="sh" country="Saint Helena">whois.nic.sh</domain>
<domain id="si" country="Slovenia">whois.arnes.si</domain>
<domain id="sk" country="Slovakia">whois.sk-nic.sk</domain>
<domain id="sm" country="San Marino">whois.ripe.net</domain>
<domain id="sn" country="Senegal">whois.nic.sn</domain>
<domain id="so" country="Somalia">whois.nic.so</domain>
<domain id="st" country="Sao Tome and Principe">whois.nic.st</domain>
<domain id="su" country="Soviet Union">whois.ripn.net</domain>
<domain id="tc" country="Turks and Caicos Islands">whois.adamsnames.tc</domain>
<domain id="tf" country="French Southern Territories">whois.nic.tf</domain>
<domain id="th" country="Thailand">whois.thnic.co.th</domain>
<domain id="tk" country="Tokelau">whois.dot.tk</domain>
<domain id="tl" country="East Timor">whois.nic.tl</domain>
<domain id="tm" country="Turkmenistan">whois.nic.tm</domain>
<domain id="to" country="Tonga">whois.tonic.to</domain>
<domain id="tr" country="Turkey">whois.nic.tr</domain>
<domain id="tv" country="Tuvalu">tvwhois.verisign-grs.com</domain>
<domain id="tw" country="Taiwan">whois.twnic.net.tw</domain>
<domain id="ua" country="Ukraine">whois.net.ua</domain>
<domain id="ug" country="Uganda">whois.co.ug</domain>
<domain id="uk" country="United Kingdom">whois.nic.uk</domain>
<domain id="us" country="United States">whois.nic.us</domain>
<domain id="uy" country="Uruguay">whois.nic.org.uy</domain>
<domain id="uz" country="Uzbekistan">whois.cctld.uz</domain>
<domain id="vc" country="Saint Vincent and the Grenadines">whois2.afilias-grs.net</domain>
<domain id="ve" country="Venezuela">whois.nic.ve</domain>
<domain id="vg" country="British Virgin Islands">whois.adamsnames.tc</domain>
<domain id="wf" country="Wallis and Futuna">whois.nic.wf</domain>
<domain id="ws" country="Samoa">whois.website.ws</domain>
<domain id="yt" country="Mayotte">whois.nic.yt</domain>
<domain id="aero" country="Air transport">whois.aero</domain>
<domain id="arpa" country="Internet Infrasructure">whois.iana.org</domain>
<domain id="asia" country="Asian-Pacific countries">whois.nic.asia</domain>
<domain id="cat" country="Catalan culture">whois.cat</domain>
<domain id="coop" country="Cooperative associations">whois.nic.coop</domain>
<domain id="edu" country="U.S. education">whois.educause.edu</domain>
<domain id="gov" country="U.S. goverment">whois.dotgov.gov</domain>
<domain id="int" country="">whois.iana.org</domain>
<domain id="jobs" country="">jobswhois.verisign-grs.com</domain>
<domain id="mobi" country="">whois.dotmobiregistry.net</domain>
<domain id="museum" country="">whois.museum</domain>
<domain id="name" country="">whois.nic.name</domain>
<domain id="pro" country="">whois.registrypro.pro</domain>
<domain id="tel" country="">whois.nic.tel</domain>
<domain id="travel" country="">whois.nic.travel</domain>
</ourdomains>
Алгорим подбора соответствующего сервера сам организую, мне бы только знать, как основной код в с# блок зенки внедрить. Ну и еще пожелание: чтобы запрос через прокси из переменной выполнялся.

П.С. Для *.RU зоны вполне хватает парсера на гет-запросе в https://www.nic.ru/whois/?query=ya.ru
 

bhairava7

Client
Регистрация
18.08.2015
Сообщения
154
Благодарностей
15
Баллы
18
помогите организовать универсальный многопоточный парсер Whois на c# в зенке. Нашел вроде как рабочий код (источник):
Код:
string txtResponse = "";
            string strResponse = "";
            TcpClient tcpWhois = new TcpClient("whois.internic.net", 43);
            NetworkStream nsWhois = tcpWhois.GetStream();
            BufferedStream bfWhois = new BufferedStream(nsWhois);
            StreamWriter swSend = new StreamWriter(bfWhois);
                         swSend.WriteLine("google.com");
                         swSend.Flush();
            StreamReader srReceive = new StreamReader(bfWhois);
            while ((strResponse = srReceive.ReadLine()) != null)
            {
                txtResponse += strResponse + "\r\n";
            }
            tcpWhois.Close();
            Console.WriteLine(txtResponse);
Есть списки соотвествий Whois для каждой зоны:

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

П.С. Для *.RU зоны вполне хватает парсера на гет-запросе в https://www.nic.ru/whois/?query=ya.ru
в приведённом примере можно скачать файлик для всех зон. Просто проверяешь какая зона у домена и парсишь данные через соответствующий сервер через get или post запрос.
Если ты можешь сам организовать "алгоритм подбора сервера", то дальше еще проще, как определил сервер - шлёшь get запрос с твоим доменом к нему, а результат парсишь.
 
  • Спасибо
Реакции: GreenWay

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)