Messaggioda vecchio » 28/12/2004, 16:06

senti io ho trovato questa pagina che credo possa essere inerente a quanto stiamo cercando...ma non so in che modo possa essere utile!!!!
cmq questo è il link...fammi sapere...
http://netgroup.polito.it/reti2/slide_v ... ckets.html

<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 609 di 1036
Iscritto il: 17/07/2003, 14:35

Messaggioda dazuco » 29/12/2004, 17:24

se il problema è capire se esiste un sito a quell'indirizzo, ossia http://www.vecchioXXX.it allora puoi usare lo stesso protocollo HTTP con una richiesta di HEAD o GET (ma basterebbe HEAD)
In questo modo se la pagina di default di un sito (index.html o index.htm) esiste la risposta di HTTP sarà mi sembra 100 o 200 altrimenti 404 not found.
Se vuoi ho un piccolo e rudimentale programma java che invia una richiesta di GET a indirizzi che digiti su una text.
Dovresti modificarlo facendogli fare il loop su l'indirizzo www.vecchioXXX.it cambiando ad ogni giro il numero XXX e magari sostituendo alla stringa GET la HEAD così velocizzi il tutto.
ciao ciao
dazuco
Junior Member
Junior Member
 
Messaggio: 143 di 196
Iscritto il: 10/08/2003, 11:58
Località: Italy

Messaggioda vecchio » 30/12/2004, 14:27

emm...il problema è che io non so programmare in java...nè so cosa sia il protocollo http...quindi se puoi, dovresti mandarmi il programma già modificato...io provvederò a cambiare il nome del sito...questo non dovrebbe essere difficile...
grazie

ciao!
il vecchio

<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 610 di 1036
Iscritto il: 17/07/2003, 14:35

Messaggioda eafkuor » 04/01/2005, 11:23

si vecchio il link che hai trovato e' perfetto ti interessa soprattutto il programma

2.1.2 TCP Example - Winsock

p.s. ho potuto scriverti solo ora perche' sono tornato ieri dalla vacanza

-----------------------
Il bello di essere intelligente e' che puoi divertirti a fare l' imbecille, ma se sei un imbecille non puoi fare il contrario.
Woody Allen
eafkuor
Senior Member
Senior Member
 
Messaggio: 120 di 1106
Iscritto il: 08/03/2004, 15:59
Località: Italy

Messaggioda vecchio » 04/01/2005, 23:16

cioè? devo copiare un parte di quel programma? ma quale??

<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 614 di 1036
Iscritto il: 17/07/2003, 14:35

Messaggioda vecchio » 04/01/2005, 23:33

per ora l'unica miglioria che ho apportato (non so minimamente cosa ho fatto!!) è stata sostituire la scritta

#include <sys/socket.h>

con

#include <winsock.h>

tra l'altro andando a guardare nella cartella "include" del prohgramma ho visto che c'è anche un altro file chiamato "winsock2.h"..servirà? boh...

cmq una volta fatta questa modifica vado nuovamente a compilare il programma e stavolta non gli vanno bene i due include sottostanti, il netinet e il db...non ho proprio idea..
illuminami al più presto!!

ciao
il vecchio


<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 615 di 1036
Iscritto il: 17/07/2003, 14:35

Messaggioda eafkuor » 05/01/2005, 15:09

prova questo spero che funzioni...


#include <stdio.h>
#include <winsock.h>

#define PORT 80


void client(char *);
int InitializeWinsock(WORD );


int main()
{
char string1[30], string2[10];
int n=0, c=0;

for(n=0;n<1000;n++){ //i tentativi si effettuano fino a www.vecchio1000.it

strcpy(string1, "www.vecchio");
sprintf(string2, "%i", n);
strcat(string1, string2);
strcat(string1, ".it");


//pero' forse devi convertire la stringa in ip non lo so come si fa mi dispiace
if (!InitializeWinsock (MAKEWORD(1,1) ) ) return 1;
if(!client(string1))continue;
else {WSACleanup();c=1;break;} //se ti connetti metti c=1 ed esci da ciclo
}
if(!c)printf("Non sono riuscito a collegarmi a nessun sito\n");
else printf("Mi sono collegato al sito %s\n", string1);


return 0;
}



int client(char * server_IP)
{
SOCKET fd; // "file" descriptor for the network socket
SOCKADDR_IN saddr;
char buf[MAX_STRING];

if ((fd=socket(AF_INET,SOCK_STREAM,0)) == INVALID_SOCKET)
printf("Errore durante la creazione del socket\n");

saddr.sin_family = AF_INET;
saddr.sin_addr.s_addr = inet_addr(server_IP);
saddr.sin_port = htons(PORT);

// request connection to server socket (remote machine)
if (connect(fd, (LPSOCKADDR) &saddr, sizeof(saddr)) == SOCKET_ERROR)
return 0; //se non si connette ritorna 0

if (closesocket(fd) == SOCKET_ERROR)
printf("Errore durante la chiusura del socket\n");

return 1;
}



/**********************************************
* Windows Sockets Initialization *
**********************************************/

int InitializeWinsock(WORD wVersionRequested)
{
WSADATA wsaData;
int err;

err = WSAStartup(wVersionRequested, &wsaData);

// ritorna errore se, ad esempio, l'applicazione supporta al massimo
// la versione 1.1 e la DLL supporta da 2.0 in su (le versioni non si sovrappongono)
if (err!=0) return 0; // Tell the user that we couldn't find a usable winsock.dll

// WSAStartup returns in wHighVersion (struct wsaData) the highest version it supports
// and in wVersion the minimum of its high version and wVersionRequested.
// wVersion is the The version of the Windows Sockets specification
// that the Windows Sockets DLL expects the caller to use.

// Se WSAStartup ritorna un risultato accettabile, l'applicazione deve ancora
// verificare che il risultato sia compatibile con la sua richiesta. Ad esempio,
// con wVersionRequested=1.1 e DLL version 1.0, wVersion=1.0. Se l'applicazione
// vuole assolutamente usare la DLL 1.1, deve ancora verificare di non trovarsi
// in questo caso

// Tell the user that we couldn't find a usable winsock.dll.
if (LOBYTE(wsaData.wVersion )!=1 || HIBYTE(wsaData.wVersion)!=1) return 0;

//Everything is fine: proceed
return 1;
}

-----------------------
Il bello di essere intelligente e' che puoi divertirti a fare l' imbecille, ma se sei un imbecille non puoi fare il contrario.
Woody Allen
eafkuor
Senior Member
Senior Member
 
Messaggio: 121 di 1106
Iscritto il: 08/03/2004, 15:59
Località: Italy

Messaggioda vecchio » 05/01/2005, 22:02

mmm..
stavolta mi segna 8 errori!!!
te li elenco:
26 c:\docume~1\..\forse.cpp void value not ignored as it ought to be

26 c:\docume~1\..\forse.cpp in argument to unary !

39 c:\docume~1\..\forse.cpp new declaration `int client(char *)'

7 c:\docume~1\..\forse.cpp ambiguates old declaration `void client(char *)'


42 c:\docume~1\..\forse.cpp `MAX_STRING' undeclared (first use this function)


42 c:\docume~1\..\forse.cpp (Each undeclared identifier is reported only once


42 c:\docume~1\..\forse.cpp for each function it appears in.)


42 | 'MA MA|




<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 621 di 1036
Iscritto il: 17/07/2003, 14:35

Messaggioda vecchio » 05/01/2005, 22:09

Se vuoi per maggior chiarezza ti evidenzio le parti incriminate del file...

#include <stdio.h>
#include <winsock.h>

#define PORT 80


<font color="limegreen"><b>void client(char *);</font id="limegreen"></b>
int InitializeWinsock(WORD );


int main()
{
char string1[30], string2[10];
int n=0, c=0;

for(n=0;n<1000;n++){ //i tentativi si effettuano fino a www.vecchio1000.it

strcpy(string1, "www.vecchio");
sprintf(string2, "%i", n);
strcat(string1, string2);
strcat(string1, ".it");


//pero' forse devi convertire la stringa in ip non lo so come si fa mi dispiace
if (!InitializeWinsock (MAKEWORD(1,1) ) ) return 1;
<font color="limegreen"><b>if(!client(string1))continue;</b></font id="limegreen">
else {WSACleanup();c=1;break;} //se ti connetti metti c=1 ed esci da ciclo
}
if(!c)printf("Non sono riuscito a collegarmi a nessun sito\n");
else printf("Mi sono collegato al sito %s\n", string1);


return 0;
<font color="limegreen"><b>}</b></font id="limegreen">



int client(char * server_IP)
{
SOCKET fd; // "file" descriptor for the network socket
SOCKADDR_IN saddr;
<font color="limegreen"><b>char buf[MAX_STRING];</font id="limegreen"></b>

if ((fd=socket(AF_INET,SOCK_STREAM,0)) == INVALID_SOCKET)
printf("Errore durante la creazione del socket\n");

saddr.sin_family = AF_INET;
saddr.sin_addr.s_addr = inet_addr(server_IP);
saddr.sin_port = htons(PORT);

// request connection to server socket (remote machine)
if (connect(fd, (LPSOCKADDR) &saddr, sizeof(saddr)) == SOCKET_ERROR)
return 0; //se non si connette ritorna 0

if (closesocket(fd) == SOCKET_ERROR)
printf("Errore durante la chiusura del socket\n");

return 1;
}



/**********************************************
* Windows Sockets Initialization *
**********************************************/

int InitializeWinsock(WORD wVersionRequested)
{
WSADATA wsaData;
int err;

err = WSAStartup(wVersionRequested, &wsaData);

// ritorna errore se, ad esempio, l'applicazione supporta al massimo
// la versione 1.1 e la DLL supporta da 2.0 in su (le versioni non si sovrappongono)
if (err!=0) return 0; // Tell the user that we couldn't find a usable winsock.dll

// WSAStartup returns in wHighVersion (struct wsaData) the highest version it supports
// and in wVersion the minimum of its high version and wVersionRequested.
// wVersion is the The version of the Windows Sockets specification
// that the Windows Sockets DLL expects the caller to use.

// Se WSAStartup ritorna un risultato accettabile, l'applicazione deve ancora
// verificare che il risultato sia compatibile con la sua richiesta. Ad esempio,
// con wVersionRequested=1.1 e DLL version 1.0, wVersion=1.0. Se l'applicazione
// vuole assolutamente usare la DLL 1.1, deve ancora verificare di non trovarsi
// in questo caso

// Tell the user that we couldn't find a usable winsock.dll.
if (LOBYTE(wsaData.wVersion )!=1 || HIBYTE(wsaData.wVersion)!=1) return 0;

//Everything is fine: proceed
return 1;
}

Immagine
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 622 di 1036
Iscritto il: 17/07/2003, 14:35

Messaggioda vecchio » 05/01/2005, 22:17

perdonami se ti creo tanti problemi...
grazie infinite per la mano che mi stai dando...
riguardo al primo programma che mi hai scritto, mi dicesti, se non erro, che girava tranquillamente su Linux...giusto?
beh...se proprio non riusciamo (riesci...) a farlo anche per windows io gfra qualche giorno torno in università..e là c'è linux...dici che potrò agire senza problemi? o anche lì dovrò aggiungere qualcosa? i sockets tipo sono già presenti nel pacchetto linux?
...perdonami ancora...

grazie
il vecchio

<img src="http://www.vecchio85.supereva.it/vecchio.gif" border=0>
Avatar utente
vecchio
Senior Member
Senior Member
 
Messaggio: 623 di 1036
Iscritto il: 17/07/2003, 14:35

PrecedenteProssimo

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite