P4.C
DownLoad the source Code#include "windows.h" struct o { unsigned char Ttl,Tos,Flags,OptionsSize,*OptionsData; }; struct { DWORD Address; unsigned long Status,RoundTripTime; unsigned short DataSize,Reserved; void *Data; struct o Options; } E; HANDLE hIP;WSADATA wsa;HANDLE hIcmp;DWORD *dwIPAddr;struct hostent *phostent; DWORD d;char aa[100];struct o I; HANDLE ( WINAPI *pIcmpCreateFile )( VOID ); BOOL ( WINAPI *pIcmpCloseHandle )( HANDLE ); DWORD (WINAPI *pIcmpSendEcho)(HANDLE,DWORD,LPVOID,WORD,LPVOID, LPVOID,DWORD,DWORD); int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrev, LPSTR lpCmd,int nShow ) { hIcmp = LoadLibrary( "ICMP.DLL" ); WSAStartup( 0x0101, &wsa ); phostent = gethostbyname( "www.microsoft.com"); dwIPAddr = (DWORD *)( *phostent->h_addr_list ); pIcmpCreateFile=GetProcAddress( hIcmp,"IcmpCreateFile"); pIcmpCloseHandle=GetProcAddress( hIcmp,"IcmpCloseHandle"); pIcmpSendEcho =GetProcAddress( hIcmp,"IcmpSendEcho" ); hIP = pIcmpCreateFile(); I.Ttl=6; pIcmpSendEcho(hIP,*dwIPAddr,0,0,&I,&E,sizeof(E),8000 ); d=E.Address; phostent = gethostbyaddr((char *)&d,4,PF_INET); sprintf(aa,"gethostbyaddr %p",phostent ); MessageBox(0,aa,aa,0); if ( phostent != 0 ) MessageBox(0,phostent->h_name,"hi",0); wsprintf(aa,"RTT: %dms, TTL: %d",E.RoundTripTime,E.Options.Ttl ); MessageBox(0,aa,"hi",0); pIcmpCloseHandle( hIP ); FreeLibrary( hIcmp ); WSACleanup(); }
Move back to the Vijay Mukhi's Technology Cornucopia Page to learn more about the other new Internet Technologies.