獲取本機ip位址,其實方法有很多了,現在用windows api 在delphi下實現如下;
1. 在uses 裡引用 winsock 單元。
2. 原始碼如下:
[delphi]view plain
copy
print?
function
getlocalip:
string
; type
tapinaddr = array
[0..10
] of
pinaddr;
//用於儲存活動的ip位址列表
papinaddr = ^tapinaddr;
varphe : phostent;
pptr : papinaddr;
buffer : array
[0..63
] of
char
;
//store hostname
i : integer;
ginitdata : twsadata;
wversion:word
; begin
wversion:=makeword(1,1
);
//winsock dll version
result :=''
; if
wsastartup(wversion, ginitdata)=
0then
//初始化windows socket
begin
ifgethostname(buffer, sizeof(buffer))=
0then
//計算機名稱
phe :=gethostbyname(buffer);
ifphe =
nilthen
exit;
pptr := papinaddr(phe^.h_addr_list);
i := 0
; while
pptr^[i] <>
nildo
begin
result:=strpas(inet_ntoa(pptr^[i]^));
inc(i);
end;
wsacleanup; //關閉、清理windows socket
end;
end;
3.該原始碼的不足的地方是如果機器上有2張及以上網絡卡,得到的是最後乙個。
獲取本機IP位址
cstring strlocalip char szhostname 64 memset szhostname,0x00,sizeof szhostname gethostname szhostname,sizeof szhostname phostent phost gethostbyname s...
獲取本機IP位址
第一步 載入winsock2靜態鏈結庫檔案。include pragma comment lib,ws2 32.lib bool loadwinsock 第二步 獲取本地的主機名稱。hostent phostent null char szhostname 256 memset szhostname...
獲取本機IP位址
獲取本機ip string hostname dns.gethostname iphostentry ipentry dns.gethostentry hostname 得到主機ip ipaddress addresslist ipentry.addresslist 得到本機所有的ip位址strin...