1
如何使用Delphi查找映射驱动器的IP地址。我当前的系统使用映射驱动器连接到Pervasive数据库。我正在切换到PostgreSQL,并且需要映射驱动器的IP地址连接到PostgreSQL服务器。Delphi - 映射驱动器ipaddress
我在名为HP的计算机上映射了一个文件夹(Y :)。传递Y:到WNetGetConnection返回机器名称HP,但是当我在GetHostName中使用此值时,它返回本地机器的详细信息。
我使用XE7在Windows10
LPathStr:=MAX_PATH;
If WNetGetConnectionA(PAnsiChar('Y:'), PathStr, LPathStr) = 0 then
begin
if GetHostName(PathStr,SizeOf(PathStr)) = 0 then
begin
varHostEnt := GetHostByName(PathStr);
varTInAddr.S_addr := u_long(pu_long(varHostEnt^.h_addr_list^)^);
IpAddr := inet_ntoa(varTInAddr);
HostName := PathStr;
end
我在绑定你的答案后编辑了我的原始问题。你可以给我一个例子,使用GetAddrInfo() – Gerhard
**'gethostname()'**返回本地机器的名称。摆脱那个电话。从WNetGetConnection()传递服务器名称(不是完整的UNC)到''gethostbyname()'**,或者更好'getaddrinfo()'。如果你四处搜索,有很多'getaddrinfo()'示例可用。如果'WNetGetConnection()'返回'\\ server \ path',则将'server'传递给'gethostbyname()'''getaddrinfo()'。 –