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

Reply via email to