PDA

Visualizza la versione completa : [C] Creare uno spider


Dav_r83
16-04-2005, 12:34
Ciao ragazzi,
ho in mente di progettare uno spider sotto linux in linguaggio C.
qlk di voi sa x caso come avere una "lista completa" di tutti i domini web?
Questa domanda mi sorge in quanto attraverso le socket di C potrei fare uno SCAN di un range di IP e interrogarli (richiedere delle pagine etc..) ma operando in questo modo sussiste un problema in quanto sui SERVER di HOSTING spesso su uno stesso IP hanno più domini web quindi il server che risponde al mio tentativo di connessione non riesce a risolvere la richiesta.
Di conseguenza mi interessa capire se c'è un modo x avere l'elenco di tutti i domini web attivi.
Io credo che questo sia possibile in quanto esistono dei server che hanno un database con l'elenco dei domini attivi..resta solo il problema di scoprire come interrogarli.

Vi siete mai chiesti come fa il vostro browser a "tradurre" da un URL all'indirizzo IP corrispondente? procede allo stesso modo:
si connette ai server con i DATABASE dei domini chiede il rispettivo IP associato all URL digitato poi contatta il SERVER su cui effettivamente c'è il dominio...

tnx Dav

dekdek
16-04-2005, 14:21
L'archittettura Internet e' distribuita. Non esiste un solo server che ha tutte le informazioni. Ognuno ne contiene una minima parte, ed ha un elenco di altri server cui rivolgersi per le informazioni mancanti.

Dav_r83
17-04-2005, 00:45
mmm..quindi eventualmente tu come faresti a ottenere una lista dei siti web attivi?
sicuramente c'è un modo..altrimenti gli spider che oggi scandagliano la rete come fanno?
hai mai provato a richiedere una pagina internet attraverso telnet?
io mi immagino la stessa modalità x ottenere un elenco dei siti.
es.
Se io ho l'indirizzo del server su cui c'è il DB dei siti posso (che sicuramente sono standard)ottengo una lista di indirizzi e da li inizio a scandagliare la rete..

Alla fine gli indirizzi IP di questi SERVER devono essere noti e sicuramente c'è un modo x interrogarli altrimenti i nostri browser come fanno?!?!?

dekdek
17-04-2005, 10:08
Per il DNS: un tempo andava specificato dall'utente. Oggi viene fornito all'atto della connessione tramite protocolli di configurazione automatica.
Per il routing: in genere la connessione da casa verso il provider e di tipo punto-punto. Da li' in poi comincia il routing vero e proprio.

Internet e' una rete dinamica. La configurazione di intere sottoreti puo' cambiare senza alcun preavviso. Una societa' che gestisce un gruppo di indirizzi IP puo' spostare il suo sito dall'uno all'altro mantenendo la stessa URL. Un sito che ora esiste fra un'ora potrebbe scomparire nel nulla. E altri dieci nuovi andarlo a sostituire.
Percio', quasi tutti i protocolli di routing sono stati progettati per memorizzare informazioni in soft state.
Vale a dire: quando un router riceve segnali da un host, memorizza l'indirizzo di quell'host e il modo per raggiungerlo in modo da poter inoltrare informazioni verso quel destinatario. _MA_ questa informazione ha una breve aspettativa di vita (di solito 5-10 minuti) dopodiche viene scartata o quantomeno l'host viene reinterrogato per verificare la consistenza delle informazioni.

Squall1988
17-04-2005, 21:38
http://freephp.html.it/articoli/view_articolo.asp?id=112&pag=2

questo link spiega come creare un whois system in php, forse ti può essere utile il procedimento ;)

Dav_r83
18-04-2005, 11:16
La guida è molto interessante...
Però qui spiega come ricavare da un URL l'IP corrispondente..
Io invece dovrei ricavare una lista di siti..io mi immaginerei una sorta di comando "DIR" dove il ROOT DOMAIN SERVER ti risponde con la lista degli indirizzi col rispettivo IP contenuti nel suo database...
Mi sa che questo nn è possibile.. mi chiedo allora come fanno gli SPIDER già esistenti a scannerizzare la rete...

dekdek
18-04-2005, 11:32
Seguendo i collegamenti, di qualsiasi tipo.

billiejoex
18-04-2005, 12:19
Non puoi creare un piccolo scanner che dapprima pinga un range di indirizzi e successivamente prova a mandare un SYN alla porta 80 degli indirizzi che hanno risposto al ping?
Tutti gli indirizzi che risponderanno con un SYN/ACK saranno web server operativi.

Loading