delphi獲取本機IP位址

2021-07-28 06:07:51 字數 1292 閱讀 7706

獲取本機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...