[PHP]Tip gevraagd over hoe websites te scannen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik moet een scripje maken in PHP wat controleert of op bepaalde sub-domeinen een website actief is echter ik heb eerlijk gezegd geen idee hoe ik dit ga aanpakken.

De websites staan allemaal op dezelfde server, kestie van de url openen en de headers inlezen is geen optie omdat er een panel opdraait die een default pagina genereert voor elk domein wat is aangemaakt in het panel. Ook krijg je een default pagina te zien als je een niet bestaand sub domein invult.
Dus als je de url opent komt er altijd wel iets terug.

Het gaat erom dat men gratis subdomeinen uitgeeft voor gratis webhosting, echter 1 van de voorwaarde van gratis webhosting is dat er wel een werkende website op moet staan.
Dit ter voorkoming van een helehoop "ghost" sub domeinen die niet worden gebruikt.
Het scripje moet dus met intervallen alle sub domeinen scannen of er inderdaad een website opstaat.

Iemand een idee/tip hoe ik dit het beste kan gaan aanpakken?

Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Connectie openen op poort 80, alle data binnentrekken en dan de HTML vergelijken met die standaardpagina. Als de binnengehaalde data overeenkomt met die default pagina staat er dus geen website, en dan is het subdomein dus niet in gebruik.

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

En waarom kan je dit eigenlijk niet op de server zelf regelen?

edit:
blijkbaar onduidelijk ;)

[ Voor 33% gewijzigd door BtM909 op 13-04-2006 17:19 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
BtM909 schreef op donderdag 13 april 2006 @ 17:10:
En waarom kan je dit eigenlijk niet serverside regelen?
en nu hoor ik half got denken: "php is toch server side???"
even voor de duidelijkheid:
als je met php pagina's gaat downloaden van een server is php dus de client, en de server waarvan je download de (juist) server

ik kan me inderdaad voorstellen dat het draaien van een programmatje op de server vele malen sneller is dan ditzelfde te doen dmv php.

als je niks van andere prog talen af weet kan ik me voorstellen dat je dit wilt doen in php, maar gebruik dan svp geen sockets of iets in die geest, maar werk met het openen van de files van je hd af (server side dus)

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 00:44

orf

inderdaad gewoon naar de filemtime kijken.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Gewoon op de server kijken welke subdomeinen er actief zijn inderdaad.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op de server zelf controleren is geen optie, het moet in PHP.
Dit omdat de gegevens ook in een database moeten worden gestopt en moeten worden kunnen gebruikt in het support panel. Ook moet het scripje zo te gebruiken zijn op elke andere server, het moest dus een scripje zijn wat server onafhankelijk werkt.

Maargoed ik ga denk ik de gehele content inlezen en vergelijken met de default pagina (ofzoiets)

Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 00:44

orf

Waarom kan PHP dan lokaal niet bij die gegevens en moet het via http?

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Verwijderd schreef op donderdag 13 april 2006 @ 23:11:
Op de server zelf controleren is geen optie, het moet in PHP.
Dit omdat de gegevens ook in een database moeten worden gestopt en moeten worden kunnen gebruikt in het support panel. Ook moet het scripje zo te gebruiken zijn op elke andere server, het moest dus een scripje zijn wat server onafhankelijk werkt.

Maargoed ik ga denk ik de gehele content inlezen en vergelijken met de default pagina (ofzoiets)
Schrijf dan een php-parser voor een apache config file. Komt op mij vrij aardig over alsof je wil weten welke domeinen nog niet gebruikt zijn vanaf buitenaf...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
1 probleem, het komt in eerste instantie op een IIS server.

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Hoe wordt die default pagina geserveerd, via een dynamic link, 404-error, etc?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Als het domein wordt aangemaakt wordt er een standaard html geplaatst in de webroot van het domein.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Je kunt toch ook het FS scannen en kijken waar iets gewijzigd is?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Martijn02
  • Registratie: September 2000
  • Laatst online: 19-09 14:55

Martijn02

/* No Comment */

Ik zou even kijken naar de PECL module HTTP_Client... daarmee kan je met php vrij gemakkelijk http(s) gets en posts doen. Hij houd keurig je referers en cookies bij als je dat wilt, en heeft je de html van de pagina's terug.

Acties:
  • 0 Henk 'm!

  • MissingDog
  • Registratie: Augustus 2002
  • Niet online
Waarom niet zoiets? Let op...pseudocode

PHP:
1
2
3
4
foreach ( $subdomeinfolder in $vhostfolders){
$huidigegrootte = checkfilesize($subdomeinfolder);
if ($huidigegrootte == $defaultgrootte) echo "Domein {$subdomeinfolder} bevat geen geldige content";
}


Het lijkt mij 't makkelijkste om dit gewoon op filesystemniveau even af te handelen, aangezien alle domeinen op dezelfde machine draaien.

[ Voor 23% gewijzigd door MissingDog op 14-04-2006 17:25 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dan ga je er wel vanuit dat het script en de domeinen op dezelfde server staan.
Het script kan ook worden gedraait op een aparte server waarop dus niet de te controleren subdomeinen staan.

Acties:
  • 0 Henk 'm!

  • Xandrios
  • Registratie: Februari 2001
  • Laatst online: 16:24
PHP:
1
2
3
4
5
6
7
$defaultpagina = "<b>placeholder for domain blabla</b>";
$pagina = "http://subdomein.blaat.com/index.html";
//$pagina = "/var/www/pages/subdomein.blaat.com/index.html";

if(file_get_contents($pagina) == $defaultpagina){
 echo "default pagina nog niet aangepast!";
}


Zoiets als je niet lokaal bij de files kunt komen. Anders inderdaad gewoon lokaal controleren :)

[ Voor 28% gewijzigd door Xandrios op 14-04-2006 19:12 ]


Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 00:44

orf

Desnoods kun je de placeholder pagina's metatags geven -> get_meta_tags()
Of een speciale (x) header. -> fsockopen en connectie verbreken na ontvangst headers. of get_headers() (php5)

Dat scheelt je (in het laatste geval) nogal wat dataverkeer als het om veel pagina's gaat.

[ Voor 9% gewijzigd door orf op 14-04-2006 21:34 ]


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

orf schreef op vrijdag 14 april 2006 @ 21:33:
Desnoods kun je de placeholder pagina's metatags geven -> get_meta_tags()
Of een speciale (x) header. -> fsockopen en connectie verbreken na ontvangst headers. of get_headers() (php5)

Dat scheelt je (in het laatste geval) nogal wat dataverkeer als het om veel pagina's gaat.
Gebruik dan meteen de e-tag dmv een HEAD lookup; dat scheelt je wijzigingen aan de server-kant te maken.

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 00:44

orf

Gebruik dan meteen de e-tag dmv een HEAD lookup; dat scheelt je wijzigingen aan de server-kant te maken.
Dat hangt weer net af van hoe die pagina's geserveerd worden. PHP pagina's zullen in de meeste gevallen geen ETag of last-modified geven als ze geserveerd worden.

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

orf schreef op vrijdag 14 april 2006 @ 21:49:
[...]

Dat hangt weer net af van hoe die pagina's geserveerd worden. PHP pagina's zullen in de meeste gevallen geen ETag of last-modified geven als ze geserveerd worden.
Uiteraard; ik had dan ook het topic gelezen voor ik reageerde :)
Verwijderd schreef op vrijdag 14 april 2006 @ 13:41:
Als het domein wordt aangemaakt wordt er een standaard html geplaatst in de webroot van het domein.

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 00:44

orf

Spider.007 schreef op vrijdag 14 april 2006 @ 21:59:
[...]

Uiteraard; ik had dan ook het topic gelezen voor ik reageerde :)
[...]
Ik ook, maar dat is al weer een hele dag geleden. :P
Pagina: 1