有没有一个函数可以求的计算机名
解决方案 »
- 程序如何关闭弹出菜单?
- 初级问题:BDE能用select语句打开文本文件吗?
- 我想弄一个单文档的程序,在窗体启动后最大化显示,在靠左边画出一块矩形,在用鼠标点击这块后出来一个dialog,在这个dialog里有一个comb
- 一个关于DLL的问题帮帮忙吧!!!
- 高手帮忙:用什么函数可以保存网络的图片到客户端?
- 关于DLL的问题 ,请教大家 有酬谢
- 连接ACCESS数据库的小问题!
- <<<<象我这种情况会引起冲突吗?
- Api中有使图片颜色渐变的函数吗?
- 一个sqlserver7统计的问题??
- 为什么DCOM在很多人使用时 出现RPC调用错误 无法连接
- 关于BDE administrator的一个问题,请各位大侠指点
procedure TForm1.Button1Click(Sender: TObject);
var
dd:array[0..44] of char;
begin
gethostname(dd,45);
showmessage(dd);
使用 WinSock 单元;过程如下:function IPAddrToName(IPAddr : String): String;varSockAddrIn: TSockAddrIn;HostEnt: PHostEnt;WSAData: TWSAData;beginWSAStartup($101, WSAData);SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(IPAddr));HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);if HostEnt<>nil thenbeginresult:=StrPas(Hostent^.h_name)endelsebeginresult:='';end;end; 测试时请在在线状态。测试代码:varName: string;beginName := InputBox('输入对方主机IP', '主机IP地址:', '');showmessage(IpAddrToName(Name));end;作者:Latfi Baran******************************//uses winsock; 通过IP地址得到机器名function iptoname(ip:string):string;varWSAData:TWSAData;p:PHostEnt;InetAddr:dword;beginresult:='''';WSAStartup(2, WSAData);InetAddr:= inet_addr(PChar(IP));tryp:=GetHostByAddr(@InetAddr, Length(IP), PF_Inet);if p<> nil then result:=p^.h_name;exceptresult:='''';end;end;这段代码我试过, 不过只对局域网的机器有效,对internet上的机器不行,且速度不太快我有看到相关的资料,是通过udp协议,往远程机器的137端口发送UDP报文,远程机器会返回数据,其中就有远程机器的当前用户名,机器名称等信息,但如何具体实现我就不太清楚了
var
Buffer: array[0..127] of char;
GInitData: TWSADATA;
begin
WSAStartup($101, GInitData);
result := '';
GetHostName(Buffer, Sizeof(Buffer));
result := StrPas(Buffer);
WSACleanup;
end;
var
szComputerName : array[0..255] of char;
nSize : Cardinal;
begin
FillChar( szComputerName, sizeof(szComputerName), 0 );
nSize := MAX_COMPUTERNAME_LENGTH + 1;
GetComputerName( szComputerName, nSize );
if StrPas( szComputerName )= '' then
edit1.Text :=''
else
edit1.Text := StrPas( szComputerName );//显示计算器的名字end;