Article View: be.comp.programming
Article #13055Re: php: links testen
From: Michel Dalle
Date: Wed, 05 Sep 2001 10:47
Date: Wed, 05 Sep 2001 10:47
57 lines
3813 bytes
3813 bytes
In article <MPG.160002b92f7711009897ab@news.pandora.be>, MisterJ <misterj@pandora.be> wrote: >Op Tue, 04 Sep 2001 15:37:58 GMT wist Michel Dalle ons in bericht ><9n2su0$uu3$1@dackel.pdb.sbs.de> te verblijden met de volgende >boodschap: >> Wat je met PHP zou kunnen doen is fsockopen() gebruiken - vervang >> het voorbeeldje met GET door HEAD. >> >uh, hoe doe ik dat dan precies? zoals reeds eerder gezegd: ik wil geen >servers testen, maar weldegelijk links naar willekeurige urls... >bijvoorbeeld naar http://www.eenserver.be/eenlink.html >in dat voorbeeldje wordt dat naar een server (www.php.net) gedaan... Kun >je dit even verduidelijken? Als je in je browser de URL http://www.eenserver.be/eenlink.html typt, dan opent je browser een socket connectie naar de host www.eenserver.be op poort 80, en vraagt daar naar /eenlink.html - zo werkt het HTTP protocol (als je niet via een proxy gaat, tenminste). In jouw geval ga je hetzelfde doen, maar in PHP : 1) haal de hostname www.eenserver.be uit de URL, en eventueel ook de poortnummer (anders gebruik je poort 80 voor URLs met http://) 2) open een socket connectie naar die host en poort. Dit houdt in dat eerst het IP adres van die host gevonden wordt (wat enige tijd in beslag kan nemen) 3) als dat lukt, stuur hem een HEAD /eenlink.html HTTP/1.0 vraagje 4) wacht op antwoord (of als je in non-blocking mode werkt, ga naar de volgende link zolang er niets terugkomt) 5) kijk na of de webserver de status code 200 (of eventueel 301 of 302) terugstuurt Zoals TdC al aanhaalde win je met het gebruik van non-blocking sockets doordat je in stap 4 niet zomaar moet wachten op antwoord (of timeout), maar ondertussen al met de volgende link kan beginnen. Er zijn hier nog 2 andere "trage" stappen : het vinden van het IP adres en het succesvol openen van de socket connectie. Eventueel zou je reeds op voorhand de IP adressen kunnen opzoeken door (ook weer in parallel) rechtstreeks een nameserver aan te spreken, maar het protocol hiervoor is wel iets meer ingewikkeld. Misschien een checkdnsrr() van alle hosts doen voor je echt begint ? Te testen... Wat het oproepen via een browser betreft : is het dan de bedoeling dat elke bezoeker on-line zijn eigen lijst van links kan nakijken, of wil je hen gewoon de toestand van alle links *tonen* ? Het on-line nakijken lijkt me in een browser-omgeving weinig realistisch (toch voor meer dan een paar links). Het *tonen* van de toestand kan echter in twee stappen gebeuren : een proces dat (via web, via telnet of via een cron job) regelmatig wordt gelanceerd om de links na te kijken, en een PHP scriptje dat de laatste resultaten gewoon toont. Veel plezier, Michel. -- Welcome to Mike's Pub http://mikespub.net/forum/
Technical Details
Message-ID:
<9n50a9$45i$1@dackel.pdb.sbs.de>Path:
arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!newsfeed.direct.ca!look.ca!news-FFM2.ecrc.net!news.siemens.de!newsfeed.siemens.de!news.pdb.sbs.de!BRUMDALL0MReferences:
<MPG.15fd5fb49fa922a59897a2@news.pandora.be> <slrn9p7bgg.a6.antares@antares.home.be> <MPG.15ff04c26e305bc99897a3@news.pandora.be> <9n2su0$uu3$1@dackel.pdb.sbs.de> <MPG.160002b92f7711009897ab@news.pandora.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,144a28c9a3fb2fa0 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2001-09-05 03:51:13 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!newsfeed.direct.ca!look.ca!news-FFM2.ecrc.net!news.siemens.de!newsfeed.siemens.de!news.pdb.sbs.de!BRUMDALL0M From: news@mikespub.net (Michel Dalle) Newsgroups: be.comp.programming Subject: Re: php: links testen Date: Wed, 05 Sep 2001 10:47:58 GMT Organization: no Lines: 57 Message-ID: <9n50a9$45i$1@dackel.pdb.sbs.de> References: <MPG.15fd5fb49fa922a59897a2@news.pandora.be> <slrn9p7bgg.a6.antares@antares.home.be> <MPG.15ff04c26e305bc99897a3@news.pandora.be> <9n2su0$uu3$1@dackel.pdb.sbs.de> <MPG.160002b92f7711009897ab@news.pandora.be> NNTP-Posting-Host: 172.25.204.40 X-Trace: dackel.pdb.sbs.de 999687305 4274 172.25.204.40 (5 Sep 2001 10:55:05 GMT) X-Complaints-To: abuse@siemens.de NNTP-Posting-Date: Wed, 5 Sep 2001 10:55:05 +0000 (UTC) X-Newsreader: News Xpress 2.01