如何使用Delphi查找映射驱动器的IP地址。我当前的系统使用映射驱动器连接到Pervasive数据库。我正在切换到PostgreSQL并需要映射驱动器的IP地址连接到PostgreSQL服务器。
我在名为HP的计算机上映射了一个文件夹(Y :)。传递Y:到WNetGetConnection会返回机器名称HP,但是当我在GetHostName中使用此值时,它会返回本地计算机的详细信息。
我在Windows10上使用XE7
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
答案 0 :(得分:0)
您可以使用WNetGetConnection()
或WNetGetUniversalName()
解析其网络UNC路径的网络映射驱动器号/路径,然后您可以使用DNS查询(gethostbyname()
或更好{ {3}})获取UNC路径中指定的服务器名称的IP地址。