C ++のローカルIPアドレスへのアクセスを

//#_WINSOCK_DEPRECATED_NO_WARNINGSする#include <WinSock2.h>書式#include <Iphlpapi.h>書式#include <iostreamの>使用して名前空間stdを定義します。#pragmaコメント(libに、 "Iphlpapi.lib")//需要添加Iphlpapi.lib库//#プラグマコメント(libに、 "WS2_32.LIB")

INTメイン(int型ARGC、CHAR * ARGV []){// PIP_ADAPTER_INFOネイティブ構造ポインタメモリカード情報PIP_ADAPTER_INFO pIpAdapterInfoは=新しいIP_ADAPTER_INFO(); //構造体のサイズを取得し、GetAdaptersInfo unsigned long型stSize =はsizeofのパラメータ(IP_ADAPTER_INFO ); // pIpAdapterInfoポインタ変数を埋める、GetAdaptersInfo関数を呼び出す; stSizeパラメータが入力量も出力INT NREL = GetAdaptersInfo(pIpAdapterInfo、&stSizeである双方ある);(&netCardNum)GetNumberOfInterfaces ;; //記録カード番号DWORD netCardNum = 0 COUT << "ネットワークの数:" << netCardNum << ENDL; netCardNum = 0; // INT IPnumPerNetCard = 0、各カードに記録されたIPアドレスの数;(ERROR_BUFFER_OVERFLOW == NREL)であれば{//関数がERROR_BUFFER_OVERFLOWを返す場合//次に、パラメータ渡さGetAdaptersInfoメモリ空間が不足している場合、その広がりstSizeながら、stSize両方入力//出力は、元のメモリ空間の解放である理由でもあるスペースの必要性を表明し// pIpAdapterInfoを削除します。ブレーク; ケースMIB_IF_TYPE_ETHERNET:coutの<< "ETHERNET" <<てendl; ブレーク; ケースMIB_IF_TYPE_TOKENRING:coutの<< "TOKENRING" <<てendl; ブレーク; ケースMIB_IF_TYPE_FDDI:coutの<< "FDDI" <<てendl; ブレーク; ケースMIB_IF_TYPE_PPP:coutの<< "PPP" <<てendl; ブレーク; ケースMIB_IF_TYPE_LOOPBACK:coutの<< "ループバック" <<てendl; ブレーク; ケースMIB_IF_TYPE_SLIP:coutの<< "SLIP" <<てendl; ブレーク; デフォルト:裁判所未満<< "" <<てendl; ブレーク; } COUT << "网卡MAC地址:"。(iは<IF(私は++; I <pIpAdapterInfo-> AddressLength DWORD I = 0)のための 裁判所未満<< "网关地址:" << pIpAdapterInfo-> GatewayList.IpAddress.String <<てendl; pIpAddrString = pIpAddrString->次に、}一方(pIpAddrString)。pIpAdapterInfo = pIpAdapterInfo->次に、裁判所未満<<「---------------------------------------------- ----------------------」<<てendl; }

 

    } //解放メモリ空間(pIpAdapterInfo){pIpAdapterInfoを削除した場合;}戻り0;}

転載します。https://www.cnblogs.com/lzpong/p/6137652.html

おすすめ

転載: www.cnblogs.com/freedomworld/p/11607364.html