Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <WinSock2.h>
- #pragma comment(lib,"WS2_32")
- #include <Windows.h>
- #include <stdio.h>
- struct GEOIP
- {
- char ipaddress[16];
- char countrycode[4];
- char countryname[32];
- char regioncode[4];
- char regionname[32];
- };
- char *trimstr(char *str)
- {
- char *temp = str+1;
- temp[strlen(temp)-1] = 0;
- return temp;
- }
- char *GeoIP()
- {
- SOCKET hSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
- sockaddr_in sockinfo;
- sockinfo.sin_family = AF_INET;
- sockinfo.sin_port = htons(80);
- sockinfo.sin_addr.S_un.S_addr = *(unsigned long*)(gethostbyname("freegeoip.net")->h_addr_list[0]);
- connect(hSocket,(sockaddr*)&sockinfo,sizeof(sockinfo));
- char request[] = "GET /csv/ HTTP/1.1 \r\nHost: freegeoip.net\r\nUser-Agent: sbot\r\nConnection: close\r\n\r\n";
- send(hSocket,request,sizeof(request)-1,0);
- char tempbuf[1024];
- recv(hSocket,tempbuf,1024,0);
- char *content = strstr(tempbuf,"\r\n\r\n")+4;
- closesocket(hSocket);
- char *junk;
- char msg[128];
- char *ip = trimstr(strtok(content,","));
- junk = strtok(NULL,",");
- char *country = trimstr(strtok (NULL,","));
- junk = strtok(NULL,",");
- char *region = trimstr(strtok (NULL,","));
- char *city = trimstr(strtok(NULL,","));
- sprintf(msg,"%s - %s, %s, %s",ip,country,region,city);
- return msg;
- }
- int main()
- {
- //printf("Downloading GEOIP information...\n\n");
- WSADATA wsaData;
- WSAStartup(MAKEWORD(2,2),&wsaData);
- printf(GeoIP());
- getchar();
- WSACleanup();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement