■ 웹사이트 IP와 첫페이지 데이터 얻기
:: 단순히 소켓과 API를 이용하여 도메인에 대한 IP주소를 얻어오고 1024 바이트 크기의 버퍼로 포트번호 80 으로
들어오는 데이터를 출력한다.
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
void ErrorPrint(char *str)
{
printf("%s",str);
exit(1);
}
void main()
{
int bytesent;
char szBuf[1024];
hostent* remoteHost;
WSADATA wsaData;
char *remoteIP;
int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
if(iResult != NO_ERROR)
ErrorPrint("Error at WSAStartup()");
SOCKET ConnectSocket;
ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(ConnectSocket == INVALID_SOCKET)
{
printf("Error at socket() : %ld\n",WSAGetLastError());
WSACleanup();
return ;
}
remoteHost = gethostbyname("www.yahoo.com");
remoteIP = inet_ntoa(*(struct in_addr *)*remoteHost->h_addr_list);
printf("address = %s\n",remoteHost->h_name);
printf("address = %s\n",remoteIP);
sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr(remoteIP);
clientService.sin_port = htons(80);
if(connect(ConnectSocket,(SOCKADDR*)&clientService,sizeof(clientService))
== SOCKET_ERROR)
ErrorPrint("Failed to connect");
bytesent = send(ConnectSocket,"get http:\\www.yahoo.com\r\n\r\n",30,0);
printf("Byte Sent : %ld\n",bytesent);
while(recv(ConnectSocket, szBuf, 1024, 0))
printf("%s",szBuf);
WSACleanup();
return ;
}
'컴퓨터 기술 > PE 포맷' 카테고리의 다른 글
패킷 감청 :: WinPcap을 이용한 패킷 관련 소스 (0) | 2011.03.07 |
---|---|
hooking :: 간단한 메시지 훅 작성 (0) | 2011.02.25 |
PE 파일 :: Imports 상세 분석(memory) (0) | 2011.02.25 |
PE 파일 :: Imports 상세 분석(disk) (0) | 2011.02.25 |
PE 파일 :: Import Section 분석 (0) | 2011.02.25 |
댓글 로드 중…