1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| /*================= Pour extraire la première adresse IP trouvée dans une chaine ================*/
char * Extraire_IP(char * Chaine)
{
char Copie1[1024], Copie2[1024], Copie3[1024];
sprintf(Copie1, "%s", strstr(Chaine, "<BODY>\r\n"));
sprintf(Copie2, "%s", strstr(Chaine, "</BODY>"));
sprintf(Copie3, "%s", Left(Copie1, strlen(Copie1) - strlen(Copie2)));
return Right(Copie3, strlen(Copie3) - strlen("<BODY>\r\n"));
}
/*=============================== Pour récupérer votre IP Internet ==============================*/
char * IP_Internet()
{
SOCKET W_IP;
IN_ADDR Adresse;
SOCKADDR_IN SockAddrIn;
HOSTENT * Hote;
WSADATA WSAData;
char Buffer[1024] = "";
static char IP[16];
WSAStartup(0x0202, &WSAData);
W_IP = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
Hote = gethostbyname("siteayoyo.free.fr");
memcpy(&Adresse, Hote -> h_addr, Hote -> h_length);
SockAddrIn.sin_family = AF_INET;
SockAddrIn.sin_port = htons(80);
SockAddrIn.sin_addr = Adresse;
connect(W_IP, (SOCKADDR *)&SockAddrIn, sizeof(SockAddrIn));
sprintf(Buffer, "%s", "GET http://siteayoyo.free.fr/ip.php HTTP/1.0\n\n"); // la requete http
send(W_IP, Buffer, strlen(Buffer), 0);
recv(W_IP, Buffer, sizeof(Buffer), 0);
closesocket(W_IP);
WSACleanup();
sprintf(IP, "%s", Extraire_IP(Buffer));
return IP;
} |
Partager