where can I find IPHlpApi.h and DLL
Thanks,
Nitesh
--- nergim <[EMAIL PROTECTED]> wrote:
> Ok, good luck
>
> #include <Packet32.h>
> #include <IPHlpApi.h>
>
> typedef struct {
> char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
> char Description[MAX_ADAPTER_DESCRIPTION_LENGTH +
> 4];
> char Mac[15];
> char ip_addr[17];
> char protocol[32];
> IP_ADDR_STRING addresses;
> LPADAPTER LPA;
> NetType nett;
> struct bpf_stat stats;
> char *buffer; // Packet buffer
> LPPACKET lpp;
> HANDLE hthread;
> int processed;
> int terminate;
> int fragc;
> } e_adapter;
> typedef struct {
> int AdapterCount;
> e_adapter adapters[1];
> } e_adapters;
> e_adapters *GetAdapters(void) {
> int i;
> ULONG ulOutBufLen;
> DWORD dwRetVal;
> int AdapterCount = 0;
> e_adapters *adapters = NULL;
> FIXED_INFO *FixedInfo;
> PIP_ADAPTER_INFO pip, pIPAda;
> PIP_ADDR_STRING adr, adr2;
> FixedInfo = (FIXED_INFO *) GlobalAlloc( GPTR,
> sizeof( FIXED_INFO ) );
> ulOutBufLen = sizeof( FIXED_INFO );
>
> if( ERROR_BUFFER_OVERFLOW == GetNetworkParams(
> FixedInfo, &ulOutBufLen ) )
> {
> GlobalFree( FixedInfo );
> FixedInfo = GlobalAlloc( GPTR, ulOutBufLen );
> }
> if ( dwRetVal = GetNetworkParams( FixedInfo,
> &ulOutBufLen ) ) {
> GlobalFree( FixedInfo );
> return NULL;
> }
> if (GetAdaptersInfo(NULL, &ulOutBufLen) !=
> ERROR_BUFFER_OVERFLOW) {
> GlobalFree( FixedInfo );
> return NULL;
> }
> pIPAda = calloc(1, ulOutBufLen);
> if (GetAdaptersInfo(pIPAda, &ulOutBufLen) !=
> ERROR_SUCCESS) {
> GlobalFree( FixedInfo );
> free(pIPAda);
> return NULL;
> }
> AdapterCount = 0;
> for (pip = pIPAda; pip; pip = pip->Next)
> AdapterCount++;
>
> adapters = calloc(1,
> sizeof(e_adapters)
> +(AdapterCount-1)*sizeof(e_adapter)
> );
> if (!adapters)
> return NULL;
> adapters->AdapterCount = AdapterCount;
> for (pip = pIPAda, i=0; i < AdapterCount; i++,
> pip=pip->Next) {
> LPADAPTER LPA;
> sprintf(
> adapters->adapters[i].AdapterName,
> "\\Device\\Packet_%s",
> pip->AdapterName
> );
> adapters->adapters[i].addresses =
> pip->IpAddressList;
> for (adr = &adapters->adapters[i].addresses; adr;
> ) {
> if (adr2 = adr->Next) {
> adr->Next = calloc(sizeof(*adr), 1);
> memcpy(adr->Next, adr2, sizeof(*adr));
> adr = adr->Next;
> } else
> break;
> }
> sprintf(
> adapters->adapters[i].ip_addr,
> "%s",
> pip->IpAddressList.IpAddress.String
> );
>
> strcpy(adapters->adapters[i].Description,
> pip->Description);
> prmacaddr(adapters->adapters[i].Mac,
> pip->Address);
> LPA = adapters->adapters[i].LPA =
>
PacketOpenAdapter(adapters->adapters[i].AdapterName);
> if (!LPA || (LPA->hFile == INVALID_HANDLE_VALUE))
> {
> adapters->adapters[i].LPA = NULL;
> }
> else {
> PacketSetHwFilter(LPA,
> NDIS_PACKET_TYPE_PROMISCUOUS
> );
> PacketGetNetType(LPA,
> &adapters->adapters[i].nett);
> strcpy(adapters->adapters[i].protocol,
> nettypes[adapters->adapters[i].nett.LinkType]);
> }
> }
> GlobalFree( FixedInfo );
> free(pIPAda);
> return adapters;
> }
>
>
__________________________________________________
Do You Yahoo!?
HotJobs - Search Thousands of New Jobs
http://www.hotjobs.com