扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:何忠龙 顾丽娜 来源:ahcit 2007年10月28日
关键字: Linux
dwVersion=GetVersion(); dwWindowsMajorVersion= (DWORD)(LOBYTE(LOWORD(dwVersion))); |
if (!(dwVersion >= 0x80000000 && dwWindowsMajorVersion >= 4)) { //是Windows NT // 找不到设备列表 if(PacketGetAdapterNames(AdapterName,&AdapterLength)==FALSE){ printf("Unable to retrieve the list of the adapters!\n"); return -1; } // 找到设备列表 temp=AdapterName; temp1=AdapterName; while ((*temp!='\0')||(*(temp-1)!='\0')) { if (*temp=='\0') { memcpy(AdapterList[i],temp1,(temp-temp1)*2); temp1=temp+1; i++; } temp++; } // 显示适配器列表 AdapterNum=i; for (i=0;i<AdapterNum;i++) wprintf(L"\n%d- %s\n",i+1,AdapterList[i]); printf("\n"); } else //否则就是windows 9x,获取适配器名的方法同WinNT下 { if(PacketGetAdapterNames(AdapterNamea,&AdapterLength)==FALSE){ printf("Unable to retrieve the list of the adapters!\n"); return -1; } tempa=AdapterNamea; temp1a=AdapterNamea; while ((*tempa!='\0')||(*(tempa-1)!='\0')) { if (*tempa=='\0') { memcpy(AdapterList[i],temp1a,tempa-temp1a); temp1a=tempa+1; i++; } tempa++; } AdapterNum=i; for (i=0;i<AdapterNum;i++) printf("\n%d- %s\n",i+1,AdapterList[i]); printf("\n"); } |
// 选择设备 do { printf("Select the number of the adapter to open : "); scanf("%d",&Open); if (Open>AdapterNum) printf("\nThe number must be smaller than %d",AdapterNum); } while (Open>AdapterNum); |
// 打开设备 lpAdapter = PacketOpenAdapter(AdapterList[Open-1]); // 当设备无法打开时,出示错误信息: if (!lpAdapter || (lpAdapter->hFile == INVALID_HANDLE_VALUE)) { dwErrorCode=GetLastError(); printf("Unable to open the adapter, Error Code : %lx\n",dwErrorCode); return -1; } |
// set the network adapter in promiscuous mode // 如果混杂模式设置失败,提示错误: if(PacketSetHwFilter(lpAdapter,NDIS_PACKET_TYPE_PROMISCUOUS)==FALSE){ printf("Warning: unable to set promiscuous mode!\n"); } |
// set a 512K buffer in the driver // 当无法设置缓冲区时,提示错误: if(PacketSetBuff(lpAdapter,512000)==FALSE){ printf("Unable to set the kernel buffer!\n"); return -1; } |
// set a 1 second read timeout // 设置1秒的读取操作超时 if(PacketSetReadTimeout(lpAdapter,1000)==FALSE){ printf("Warning: unable to set the read tiemout!\n"); } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者