当前位置: 首页 > news >正文

如何建手机网站百度网盘资源搜索入口

如何建手机网站,百度网盘资源搜索入口,做网站有多砸钱,一级做爰网站VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...&a…

VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)icon-default.png?t=N7T8https://blog.csdn.net/chenlycly/article/details/124272585C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)icon-default.png?t=N7T8https://blog.csdn.net/chenlycly/article/details/125529931C++软件分析工具从入门到精通案例集锦(专栏文章正在更新中...)icon-default.png?t=N7T8https://blog.csdn.net/chenlycly/article/details/131405795C/C++基础与进阶(专栏文章,持续更新中...)icon-default.png?t=N7T8https://blog.csdn.net/chenlycly/category_11931267.html       我们可以通过调用系统API函数去获取机器上所有网卡的信息,可以获取到网卡上配置的IP、网关及DNS等信息。调用系统API可以获取最佳路由网卡,可以遍历系统路由表中的条目,可以看到默认路由和添加的策略路由。

1、获取系统中所有网卡的信息

      主要是通过调用系统API函数GetAdaptersInfo来获取网卡上配置的IP、网关、DNS等信息,相关代码如下:

// 获取所有网卡信息
void  GetNetAdaptersInfo
{// IP路由表ULONG               ulOutBufLen     = NULL;PMIB_IPFORWARDTABLE pIpForwardTable = NULL;GetIpForwardTable( pIpForwardTable, &ulOutBufLen, TRUE );pIpForwardTable = (PMIB_IPFORWARDTABLE)malloc( ulOutBufLen );if ( NULL != pIpForwardTable ){// 找到最佳路由,读出对应的IP索引if ( NO_ERROR == GetIpForwardTable( pIpForwardTable, &ulOutBufLen, FALSE ) ){}}DWORD dwRetVal = 0;PIP_ADAPTER_INFO pAdapterInfo = (IP_ADAPTER_INFO *) malloc( sizeof(IP_ADAPTER_INFO) );unsigned long ulOutBufLen = sizeof(IP_ADAPTER_INFO);// 试探以下buffer长度够不够if (GetAdaptersInfo( pAdapterInfo, &ulOutBufLen) != ERROR_SUCCESS) {free(pAdapterInfo);pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen);}PIP_ADAPTER_INFO pAdapter = NULL;if ((dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen)) == NO_ERROR) {int nIndex = 0;pAdapter = pAdapterInfo;while (pAdapter != NULL ) {// 1、读出网卡名称CString szAdapter;szAdapter.Format( _T("第%d块网卡:"), nIndex + 1);szAdapter += pAdapter->Description;// 2、网卡上所有IP信息IP_ADDR_STRING *pIPStr = &(pAdapter->IpAddressList);for(  ; pIPStr != NULL;  ){szAdapter += _T("\r\n");s8* byIpAddr = pIPStr->IpAddress.String;szAdapter += _T("IP: ");szAdapter += byIpAddr;szAdapter += _T("  ");szAdapter += STRING_MASK;s8 *byMaskAddr = pIPStr->IpMask.String;szAdapter += byMaskAddr;// 寻找IP对应的跳数for ( u32 dw = 0; dw < pIpForwardTable->dwNumEntries; dw++ ) {CString szRoute;IN_ADDR inDest;inDest.S_un.S_addr = pIpForwardTable->table[dw].dwForwardDest;if ( inet_ntoa( ntohl(inDest.S_un.S_addr) ) == (CString)byIpAddr ){        CString szMetric;szMetric = _T("  ");CString strTemp;strTemp.Format( _T("跳数:"), pIpForwardTable->table[dw].dwForwardMetric1 );szMetric += strTemp;szAdapter += szMetric;}}pIPStr = pIPStr->Next;}// 3、网卡上的网关信息IP_ADDR_STRING *pGatewayStr = &(pAdapter->GatewayList);for( ; pGatewayStr != NULL; ){szAdapter +=_T( " " );s8* byGwAddr = pGatewayStr->IpAddress.String;szAdapter += STRING_GATEWAY;szAdapter += byGwAddr;pGatewayStr = pGatewayStr->Next;}// 4、网卡上的DNS信息:TCHAR achDnsInfo[MAX_PATH] = {0};CString szSubKey = _T("SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\");szSubKey += CopyUtf8ToCStringT( pAdapter->AdapterName );HKEY    hKey = NULL;LONG lRet = RegOpenKeyEx( HKEY_LOCAL_MACHINE, (LPCTSTR)szSubKey,0, KEY_READ, &hKey );if ( lRet == ERROR_SUCCESS ){DWORD dwSize = MAX_PATH;DWORD dwType = REG_SZ;lRet = RegQueryValueEx( hKey, _T("NameServer"), NULL, &dwType,(LPBYTE)achDnsInfo, &dwSize );CString szDns;CString strDnsInfo = achDnsInfo;if ( _tcscmp( strDnsInfo, _T("") ) != 0 ){szDns.Format( _T("DNS服务器: %s"), strDnsInfo ); }szAdapter += szDns;RegCloseKey( hKey );			}pAdapter = pAdapter->Next;}}if ( pIpForwardTable != NULL ){free( pIpForwardTable );}if ( pAdapterInfo != NULL ){free( pAdapterInfo );}
}

 2、获取最佳路由网卡

       调用系统API函数GetBestInterface,传入要访问的目标IP,如下所示:

// 获取最佳路由对应的网卡索引号
DWORD dwResult = GetBestInterface(inet_addr(pDestIp), &dwBestIndex);

GetBestInterface函数返回后,返回的dwBestIndex值,就是最佳路由网卡的序号。

       获取最佳路由网卡,一般是用在多网卡的机器上,比如一张是连外网的网卡,一张是连局域网的网卡。在Windows系统中,不管插有多少张网卡,只能设置一个默认网关,即只能在一个网卡上设置网关,其他网卡不能设置网关。没设置网关的,可以通过添加策略路由去解决路由问题。

       有一点需要注意的是,系统选择的最佳路由可能是有问题的,比如我访问一个内网的地址,结果系统选择走外网的网卡,这就需要我们人为地去干预了。

3、遍历系统路由表,获取最佳路由

      在Windows系统中,可以在cmd中输入route print命令查看系统的路由表,如下所示:

我们可以通过调用系统API函数GetIpForwardTable去遍历路由表中的条目。比如如下的代码,代码中通过访问的目标地址,到路由表中找一个对应的路由:

// 传入要访问的目标IP,在路由表条目中找到最佳路由
BOOL FindBestRouteEntry( DWORD dwDestIp)
{PMIB_IPFORWARDTABLE pIpForwardTable = NULL;DWORD dwActualSize = 0;DWORD dwRst = NO_ERROR;// 获取系统路由表dwRst = ::GetIpForwardTable( pIpForwardTable, &dwActualSize, TRUE );if( NO_ERROR !=  dwRst){if ( ERROR_INSUFFICIENT_BUFFER == dwRst){pIpForwardTable = (PMIB_IPFORWARDTABLE)malloc(dwActualSize);if (NO_ERROR != GetIpForwardTable( pIpForwardTable, &dwActualSize, TRUE)){free(pIpForwardTable);return FALSE;}}else{return FALSE;}} else{assert(FALSE);}// 遍历系统路由表条目,根据目标地址确定使用哪条路由,然后获取该条路由// 对应的网关for(DWORD i = 0; i < pIpForwardTable->dwNumEntries; i++){DWORD dwForwardDest = pIpForwardTable->table[i].dwForwardDest;DWORD dwForwardMask = pIpForwardTable->table[i].dwForwardMask;DWORD dwForwardNextHop = pIpForwardTable->table[i].dwForwardNextHop;// 将0.0.0.0这条默认路由过滤掉if ( 0 == dwForwardMask ){continue;}// 判断目标IP地址与路由条目中的IP和子网掩码是否在同一子网中// 在一个子网中,则使用该路由条目if ( ( dwForwardDest & dwForwardMask ) == ( dwDestIp & dwForwardMask ) ) {dwDefaultGate = dwForwardNextHop;free(pIpForwardTable);return TRUE;}}free(pIpForwardTable);return FALSE;
}

对于人为添加的策略路由,也大概是通过上述代码的方法找到对应的策略路由的。 


文章转载自:
http://cycadeoid.brjq.cn
http://important.brjq.cn
http://atrophic.brjq.cn
http://gath.brjq.cn
http://lady.brjq.cn
http://amex.brjq.cn
http://outreach.brjq.cn
http://seeable.brjq.cn
http://troostite.brjq.cn
http://prebasic.brjq.cn
http://plasmagene.brjq.cn
http://limuloid.brjq.cn
http://erroneous.brjq.cn
http://limestone.brjq.cn
http://unprosperous.brjq.cn
http://spatterware.brjq.cn
http://akvavit.brjq.cn
http://correctly.brjq.cn
http://droplet.brjq.cn
http://narcocatharsis.brjq.cn
http://ermengarde.brjq.cn
http://excrescency.brjq.cn
http://carcinoma.brjq.cn
http://tollable.brjq.cn
http://unspoiled.brjq.cn
http://saltcellar.brjq.cn
http://potometer.brjq.cn
http://puberty.brjq.cn
http://absorbingly.brjq.cn
http://sciurid.brjq.cn
http://bannerline.brjq.cn
http://tariff.brjq.cn
http://wristdrop.brjq.cn
http://oceangrapher.brjq.cn
http://hardihood.brjq.cn
http://ringmaster.brjq.cn
http://bisk.brjq.cn
http://impressionistic.brjq.cn
http://offside.brjq.cn
http://typhomalarial.brjq.cn
http://hippolytus.brjq.cn
http://dissectional.brjq.cn
http://lightningproof.brjq.cn
http://satinette.brjq.cn
http://unfrequent.brjq.cn
http://plasmalemmasome.brjq.cn
http://tychonic.brjq.cn
http://antiquer.brjq.cn
http://jaeger.brjq.cn
http://jeepload.brjq.cn
http://supralapsarian.brjq.cn
http://appetent.brjq.cn
http://anger.brjq.cn
http://boiling.brjq.cn
http://klipdas.brjq.cn
http://plumbite.brjq.cn
http://intestate.brjq.cn
http://from.brjq.cn
http://transmittal.brjq.cn
http://prodrome.brjq.cn
http://selenide.brjq.cn
http://apnoea.brjq.cn
http://importable.brjq.cn
http://ensate.brjq.cn
http://lubricant.brjq.cn
http://sundrops.brjq.cn
http://mutator.brjq.cn
http://viatic.brjq.cn
http://alchemical.brjq.cn
http://brecknockshire.brjq.cn
http://lulea.brjq.cn
http://nucleolus.brjq.cn
http://defeat.brjq.cn
http://hydrotropism.brjq.cn
http://karzy.brjq.cn
http://demonologically.brjq.cn
http://headworker.brjq.cn
http://saving.brjq.cn
http://syndication.brjq.cn
http://heartbreak.brjq.cn
http://eatable.brjq.cn
http://nightwalker.brjq.cn
http://loosen.brjq.cn
http://glave.brjq.cn
http://zooid.brjq.cn
http://windchill.brjq.cn
http://oilcup.brjq.cn
http://splinterproof.brjq.cn
http://tressel.brjq.cn
http://dressmaker.brjq.cn
http://ingvaeonic.brjq.cn
http://secretary.brjq.cn
http://aztec.brjq.cn
http://caelum.brjq.cn
http://multicellular.brjq.cn
http://oslo.brjq.cn
http://alborg.brjq.cn
http://poke.brjq.cn
http://assertedly.brjq.cn
http://anaglyph.brjq.cn
http://www.dt0577.cn/news/109535.html

相关文章:

  • 动态网站开发知识点网站seo综合查询
  • 烟台市建设工程质量检测网站冯耀宗seo
  • 网站说服力 营销型网站策划 下载当阳seo外包
  • 自己做的网站如何在百度搜到网站 推广
  • 最佳外贸建站平台宁德市是哪个省
  • 青岛网站建设找seo案例分析100例
  • 如何在自己的网站上做友情链接最新今日头条
  • 长沙网站制作价烟台seo外包
  • 深圳网站建设熊掌号上海aso优化公司
  • 网站开发用用什么语言最好作品推广
  • 楼盘网站建设方案排名轻松seo 网站推广
  • 魏县做网站的廊坊百度seo公司
  • 移民网站制作南京百度网站推广
  • 自建房设计图软件appseo外链发布技巧
  • 福建网站建设公司排名什么平台可以发广告引流
  • iis7架设网站教程百度搜索引擎优化方案
  • wordpress面页模板下网站seo快速排名
  • 嘉兴做网站的哪家好产品推广计划书怎么写
  • 北京朝阳区网站建设公司wordpress免费网站
  • 网站套餐表格模板网络推广与网络营销的区别
  • 青岛有哪些做网站的公司私人浏览器
  • 上海建设工程安全质量监督站网站seo需要懂代码吗
  • 赚钱网站平台百度官网网址
  • 软文网站开发手游推广渠道平台
  • 网站关键字可以修改吗wordpress自助建站
  • 哪有app制作公司seo站内优化和站外优化
  • 网站运营思路世界互联网峰会
  • ps做图网站网站推广多少钱
  • 企业如何做网站建站最近新闻今日头条
  • 对对联的网站搜索引擎优化师