/*判断是否能够路由到指定的IP

Parameters

ARemote : 用来确定网卡的远程地址

Returns

在以下情况下,返回false:

1.无法路由到远程地址;

2.网卡被禁用或网卡断开连接

否则,返回true

*/

bool __fastcall CanRouteTo(const in_addr &ARemote)

{

MIB_IFTABLE *ATable;

DWORD ASize=0;

int ARetVal=0;//Unknown

if(GetIfTable(NULL,&ASize,false)==ERROR_INSUFFICIENT_BUFFER)

{

ATable=(MIB_IFTABLE *)malloc(ASize);

PMIB_IPFORWARDTABLE pIpForwardTable=NULL;

try

{

if(GetIfTable(ATable,&ASize,false)==ERROR_SUCCESS)

{

ASize=0;

int ALastMatric;

if(GetIpForwardTable(pIpForwardTable, &ASize, false)==ERROR_INSUFFICIENT_BUFFER)

{

pIpForwardTable = (PMIB_IPFORWARDTABLE)malloc(ASize);

if(GetIpForwardTable(pIpForwardTable, &ASize, false)==ERROR_SUCCESS)

{

for(int j=0; (jdwNumEntries)&&(ARetVal==0); j++)

{

if((pIpForwardTable->table[j].dwForwardMask&ARemote.S_un.S_addr)==pIpForwardTable->table[j].dwForwardDest)

{

if(pIpForwardTable->table[j].dwForwardType>=3)

{

for(DWORD i=0; idwNumEntries; i++)

{

if(pIpForwardTable->table[j].dwForwardIfIndex==ATable->table[i].dwIndex)

{

switch(ATable->table[i].dwOperStatus)

{

case MIB_IF_OPER_STATUS_OPERATIONAL:

case MIB_IF_OPER_STATUS_CONNECTED:

ARetVal=1;//Connected

break;

default:

ARetVal=2;//Disconnected

break;

}

break;

}

}

}

}

}

}

}

}

}

__finally

{

free(ATable);

if(pIpForwardTable)

free(pIpForwardTable);

}

}

return (ARetVal==1);

}

qsocket 指定网卡_QSocket相关推荐

  1. Linux指定网卡工作模式

    指定网卡工作模式使用 ethtool命令,有时候会使用mii-tool ,但是这个命令显示不太准确,1000M的也会显示成100M ethtool eth0  #产看eth0网卡的信息 [root@l ...

  2. socket绑定指定网卡发包

    socket绑定指定网卡发包 SO_BINDTODEVICE 网络编程中有时明明用eth0的地址来bind一个udp套接口, 可是发出去的包却是从eht1走的, 在网上找到这么一段话解释该问题: 在多 ...

  3. 多网卡指定网卡发送数据

    环境: 2个网卡,分别在不同网络环境. 局域网一: 网关:10.9.16.254 电脑地址1:10.9.16.88 局域网二:网关:10.9.24.1 电脑地址2:10.9.24.88 要求: 通过 ...

  4. python通过指定网卡发包_Python 使用指定的网卡发送HTTP请求的实例

    需求: 一台机器上有多个网卡, 如何访问指定的 URL 时使用指定的网卡发送数据呢? $ curl --interface eth0 www.baidu.com # curl interface 可以 ...

  5. python通过指定网卡发包_windows下用UDP 广播在特定网卡上发包

    背景 总结 通过路由表来达到在指定网卡上发包的效果. 解决方案 更改路由表 使用python的pysnmp库更方便 这里给出的是windows自带的dos命令 route change 255.255 ...

  6. tshark查看、指定网卡

    查看网卡 sudo tshark -D 或是使用:ifconfig -a,可以查看网卡与数据包的情况 指定网卡 sudo tshark -i 网卡 例: sudo tshark -i ens33

  7. I.MX6 dhcpcd 需要指定网卡

    /*************************************************************************** I.MX6 dhcpcd 需要指定网卡* 说明 ...

  8. 简单的tcpdump抓包使用总结:抓取指定ip、指定网卡、指定端口的包

    1.今天由于需要抓包研究网络问题,所以研究了一下抓取指定ip.指定网卡.指定端口的包并且输入到文件中 2 tcpdump与Wireshark介绍 在网络问题的调试中,tcpdump应该说是一个必不可少 ...

  9. linux 指定网卡 ping

    指定网卡 ping 1,系统环境 2,指定网卡 ping 检测网络 1,系统环境 $ sw_vers ProductName: Mac OS X ProductVersion: 10.13.6 Bui ...

最新文章

  1. RouterOS限速更高级运用
  2. 微信小程序实战篇-分类页面制作
  3. Hibernate之检索方式(HQL/QBC/本地SQL)
  4. 在北京,一款App从无到有至少需要100万?
  5. 交大c语言作业答案,西安交大c语言作业及答案详解.docx
  6. TP5.1类的自动加载
  7. 凌云架构V0.1——第一部分 Why架构?——第一章 新项目来了
  8. 为什么在释放锁的时候是从 tail 进行扫描
  9. 周三多管理学第七版pdf_为什么说管理学原理是企业领导的必修课?
  10. matlab中nlfilter函数,matlab的一些关于块分类的函数~~~
  11. 为此计算机所有用户安装加载项,安装Office 2013后,无法在计算机上安装Outlook加载项...
  12. java中的starts_Java Math类静态double nextAfter(double starts,double direction)示例
  13. 遥感图像数据类型的区别
  14. php 5.6.6.tar.gz.asc,Signature Checking Using GnuPG
  15. 让你的 Linux 远离黑客(二):另外三个建议
  16. opencv访问图像中每个像素的值
  17. 注册表服务器设置mtu,自己修改注册表优化宽带网设置
  18. mysql 批量录入 id_Mysql 批量插入数据 提前获得主键id
  19. 笔记软件对比之 思源笔记 VS Notion
  20. 广工工作室各方向学习指南

热门文章

  1. RAID组中的“Foreign”状态磁盘
  2. 心情舒畅,升级到u10.04了
  3. OpenCV-巴特沃斯低通高通滤波器(C++)
  4. ubuntu 14.04 nginx php mysql_Ubuntu 14.04安装Nginx+PHP+MySQL
  5. matlab训练cifar10,认识CIFAR-10数据集
  6. 网站里的MG电子是一个服务器吗,魔兽世界中的品质生活,从MG电子游艺开始!...
  7. (java)玩转算法系列-数据结构精讲[学习笔记](一)不要小瞧数组
  8. C++递归删除非空目录所有文件
  9. mysql 恢复root权限_Linux MySQL root权限恢复[图文]
  10. python单引号双引号三引号_python中的单引号、双引号和三引号有何区别