獲取乙個fixed_info的結構體
typedef struct fixed_info_w2ksp1, *pfixed_info_w2ksp1;1.getnumberofinte***ces獲取介面數量#if (ntddi_version >= ntddi_win2ksp1)
typedef fixed_info_w2ksp1 fixed_info;
typedef fixed_info_w2ksp1 *pfixed_info;
#endif
dword getnumberofinte***ces(
__out pdword pdwnumif
);2.getadaptersinfo返回本地網路介面卡列表
dword getadaptersinfo(
__out pip_adapter_info padapterinfo,
__inout pulong poutbuflen
);
int main()獲取ip位址列表、新增和刪除ip位址// 再次呼叫getinte***ceinfo來獲取我們實際需要的資料
if(::getinte***ceinfo(pinfo, &uloutbuflen) == no_error)
else
::globalfree(pinfo);
return 0;
}
getipaddrtable、addipaddress、deleteipaddress
int main()1.獲取tcp和udp連線表(gettcptable,getudptable)// 再次呼叫getipaddrtable獲取實際我們想要的資料
if(::getipaddrtable(pipaddrtable, &dwsize, false) == no_error)
else
::globalfree(pipaddrtable);
// 我們將要新增的ip和mast
uint iaipaddress;
uint imipmask;
iaipaddress = inet_addr("192.168.0.27");
imipmask = inet_addr("255.255.255.0");
// 返回的控制代碼
ulong ntecontext = 0;
ulong nteinstance = 0;
// 向第乙個介面卡新增ip位址
dword dwret;
dwret = ::addipaddress(iaipaddress, imipmask,
pipaddrtable->table[0].dwindex, &ntecontext, &nteinstance);
if(dwret == no_error)
else
::localfree(lpmsgbuf);
}// 刪除上面在第乙個介面卡上新增的ip位址
dwret = ::deleteipaddress(ntecontext);
if(dwret == no_error)
else
return 0;
}
pmib_udptable mygetudptable(bool border)return null;
}void myfreeudptable(pmib_udptable pudptable)
// 列印udp監聽表資訊pmib_udptable pudptable = mygetudptable(true);
if(pudptable != null)
myfreeudptable(pudptable);
}
相關的函式get***statistics(getipstatistics,geticmpstatistics,gettcpstatistics,getudpstatistics)
// 獲取udp統計資料1.getipforwardtable獲取路由表mib_udpstats udpstats;
if(::getudpstatistics(&udpstats) == no_error)
pmib_ipforwardtable mygetipforwardtable(bool border)return null;
}
void printipforwardtable()createipforwardentry、deleteipforwardentry、setipforwardentrymyfreeipforwardtable(piproutetable);
}}
1.獲取ip位址到介面卡的對映關係,即arp表(getipnettable)
bool inte***ceidxtointe***ceip(pmib_ipaddrtable pipaddrtable, dword dwindex, char str)else
return false;}}
return false;
}
網路程式設計 IP位址
獲取本地主機位址物件 inetaddress ip inetaddress.getlocalhost system.out.println ip.gethostname ip.gethostaddress 根據給定主機名返回主機的 ip 位址。主機名也可為ip位址,檢查位址的有效性 ip位址和主機名...
網路IP轉換函式
src.sin addr.s addr inet addr 構建網路位址。printf s n inet ntoa src.sin addr 將網路位址轉換成字串。注意 inet ntoa存在的問題是inet ntoa的返回值是乙個static型別的char 指標,所以會出現問題 char a1,a...
網路程式設計 IP協議介紹
在網路中,一幀乙太網資料報的格式如下所示,常用的udp以及tcp通訊都是基於ip協議基礎上的。1 版本佔4 位,指ip 協議的版本。通訊雙方使用的 ip協議版本必須一致。目前廣泛使用的 ip協議版本號為4 即 ipv4 關於 ipv6 目前還處於草案階段。2 首部長度佔4 位,可表示的最大十進位制數...