Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Maly problem z kompilacja...

Ostatnio zmodyfikowano 2008-10-13 11:27
Autor Wiadomość
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:
C/C++
#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
P-1973
grabon
» 2008-10-13 08:40:24
Po pierwsze w opcjach projektu w konsolidatorze dopisz:

-lws2_32

Po drugie:

C/C++
#include <iostream>

a nie:
 
C/C++
#include <iostream.h>

Po trzecie dopisz:

C/C++
#include <iostream>
#include <winsock.h>
#include <windowsx.h>

using namespace std;
P-1974
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
P-1975
grabon
» 2008-10-13 11:27:18
Bez off topu ;P to teraz niech kojarzy Ci się z Morfeusz

Edit: Tak dla zasady ;)
P-1976
« 1 »
  Strona 1 z 1