{=================================================================
功 能: 返回本机的局域网Ip地址
参 数: 无
返回值: 成功: True, 并填充LocalIp 失败: False=================================================================}
function NetGetLocalIp(var LocalIp: string): Boolean;
var
HostEnt: PHostEnt;
Ip: string;
addr: pchar;
Buffer: array [0..63] of char;
GInitData: TWSADATA;
begin
Result := False;
try
WSAStartup(2, GInitData);
GetHostName(Buffer, SizeOf(Buffer));
HostEnt := GetHostByName(buffer);
if HostEnt = nil then Exit;
addr := HostEnt^.h_addr_list^;
ip := Format('%d.%d.%d.%d', [byte(addr [0]),
byte (addr [1]), byte (addr [2]), byte (addr [3])]);
LocalIp := Ip;
Result := True;
finally
WSACleanup;
end;
end;
功 能: 返回本机的局域网Ip地址
参 数: 无
返回值: 成功: True, 并填充LocalIp 失败: False=================================================================}
function NetGetLocalIp(var LocalIp: string): Boolean;
var
HostEnt: PHostEnt;
Ip: string;
addr: pchar;
Buffer: array [0..63] of char;
GInitData: TWSADATA;
begin
Result := False;
try
WSAStartup(2, GInitData);
GetHostName(Buffer, SizeOf(Buffer));
HostEnt := GetHostByName(buffer);
if HostEnt = nil then Exit;
addr := HostEnt^.h_addr_list^;
ip := Format('%d.%d.%d.%d', [byte(addr [0]),
byte (addr [1]), byte (addr [2]), byte (addr [3])]);
LocalIp := Ip;
Result := True;
finally
WSACleanup;
end;
end;
解决方案 »
- 设置第二个监视器的分辨率
- 问个delphi菜鸟问题
- 上海浦东金桥招delphi程序员
- 急~~~求救~~~数值转换问题
- 如何WM_MOUSEWHEEL的MESSAGE里的滚轮步距~在线等待,马上结帖~
- 怎样通过DBEDIT和DBCombobox与DBGrid关联来编辑数据记录
- Delphi编的Web Service系统中,调用CGI的服务器端程序为什么打开数据库会出错?
- 怎么把Query变为编辑模式呀(在线,有答案就给分)
- ★★救命啊!发现delphi6.0在安装了update 2后form的scrollbar的style属性就失效了,改成什么样式都没有变化,还是默认的样式,而安装upd
- 各位大哥,在三层模式中如何运用handlereconcileerror函数返回应用服务器传来的错误信息?
- 有什么办法能边缓冲边播放网络上的mp3音乐?
- TStringList能识别类似于Ini一样的节点吗?
var
ip: String;
begin
if NetGetLocalIp(ip) then
begin
ShowMessage(ip); // 显示ip
end
else begin
raise Exception.Create('获取ip时出错!');
end;
end;