Maly problem z kompilacja...
Ostatnio zmodyfikowano 2008-10-13 11:27
jimmye Temat założony przez niniejszego użytkownika |
Maly problem z kompilacja... » 2008-10-13 07:51:36 Znalazłem na szybko pewien kod: #include <iostream.h> #include <winsock.h> #include <windowsx.h>
typedef struct { unsigned char Ttl; unsigned char Tos; unsigned char Flags; unsigned char OptionsSize; unsigned char * OptionsData; } IP_OPTION_INFORMATION, * PIP_OPTION_INFORMATION;
typedef struct { DWORD Address; unsigned long Status; unsigned long RoundTripTime; unsigned short DataSize; unsigned short Reserved; void * Data; IP_OPTION_INFORMATION Options; } IP_ECHO_REPLY, * PIP_ECHO_REPLY;
int doit( char * AddressIP ) { HINSTANCE hIcmp = LoadLibrary( "ICMP.DLL" ); if( hIcmp == 0 ) { return 0; } struct hostent * phe; if(( phe = gethostbyname( AddressIP ) ) == 0 ) { return 0; } typedef HANDLE( WINAPI * pfnHV )( VOID ); typedef BOOL( WINAPI * pfnBH )( HANDLE ); typedef DWORD( WINAPI * pfnDHDPWPipPDD )( HANDLE, DWORD, LPVOID, WORD, PIP_OPTION_INFORMATION, LPVOID, DWORD, DWORD ); pfnHV pIcmpCreateFile; pfnBH pIcmpCloseHandle; pfnDHDPWPipPDD pIcmpSendEcho; pIcmpCreateFile =( pfnHV ) GetProcAddress( hIcmp, "IcmpCreateFile" ); pIcmpCloseHandle =( pfnBH ) GetProcAddress( hIcmp, "IcmpCloseHandle" ); pIcmpSendEcho =( pfnDHDPWPipPDD ) GetProcAddress( hIcmp, "IcmpSendEcho" ); if(( pIcmpCreateFile == 0 ) ||( pIcmpCloseHandle == 0 ) ||( pIcmpSendEcho == 0 ) ) { return 0; } HANDLE hIP = pIcmpCreateFile(); if( hIP == INVALID_HANDLE_VALUE ) { return 0; } char acPingBuffer[ 64 ]; memset( acPingBuffer, '\xAA', sizeof( acPingBuffer ) ); PIP_ECHO_REPLY pIpe =( PIP_ECHO_REPLY ) GlobalAlloc( GMEM_FIXED | GMEM_ZEROINIT, sizeof( IP_ECHO_REPLY ) + sizeof( acPingBuffer ) ); if( pIpe == 0 ) { return 0; } pIpe->Data = acPingBuffer; pIpe->DataSize = sizeof( acPingBuffer ); DWORD dwStatus = pIcmpSendEcho( hIP, *(( DWORD * ) phe->h_addr_list[ 0 ] ), acPingBuffer, sizeof( acPingBuffer ), NULL, pIpe, sizeof( IP_ECHO_REPLY ) + sizeof( acPingBuffer ), 5000 ); if( dwStatus != 0 ) { cout << "Addr: " << int( LOBYTE( LOWORD( pIpe->Address ) ) ) << "." << int( HIBYTE( LOWORD( pIpe->Address ) ) ) << "." << int( LOBYTE( HIWORD( pIpe->Address ) ) ) << "." << int( HIBYTE( HIWORD( pIpe->Address ) ) ) << ", " << "Time: " << int( pIpe->RoundTripTime ) << "ms, " << "TTL: " << int( pIpe->Options.Ttl ) << endl; } else { } GlobalFree( pIpe ); FreeLibrary( hIcmp ); return 0; }
int main( int argc, char * argv[] ) { WSAData wsaData; if( WSAStartup( MAKEWORD( 1, 1 ), & wsaData ) != 0 ) { return 255; } for( int i = 0; i < 4; i++ ) { int retval = doit( "onet.pl" ); _sleep( 1000 ); } WSACleanup(); return 0; } Próbowałem go skompilować w dev-cpp ale cos nie idzie, potrzebuje czegos? Nie moge teraz napisac mojego build logu, bo pisze ten temat w szkole xP ale jesli ktos wie czy cos mi trzeba, biblioteke, to niech pisze. "Thanks in advance" [EDIT~] Dodam pozniej build log jak wroce do domu :P |
|
grabon |
» 2008-10-13 08:40:24 Po pierwsze w opcjach projektu w konsolidatorze dopisz: -lws2_32 Po drugie: a nie: Po trzecie dopisz: #include <iostream> #include <winsock.h> #include <windowsx.h>
using namespace std; |
|
lynx |
» 2008-10-13 11:25:11 Grabon, zmieniłeś nick na Mariusz Klepaczko? Zawsze mi się kojarzyłeś z Gabrielem, a tu masz całkiem inne imie. ;P
edit: Ale po co skoro już znam twoje imie? xD |
|
grabon |
» 2008-10-13 11:27:18 Bez off topu ;P to teraz niech kojarzy Ci się z Morfeusz
Edit: Tak dla zasady ;) |
|
« 1 » |