import javanetInetAddress;
import javanetUnknownHostException;
public class Demo {
public static void main(String[] args) {
InetAddress a;
try {
a = InetAddressgetLocalHost();
Systemoutprintln("主机名称: " + agetHostName());
} catch (UnknownHostException e) {
eprintStackTrace();
}
}
}
我已经测试过了
#pragma comment(lib,"ws2_32lib")就是让程序中可以使用这个库的接口。
和编译器里面链接这个库效果一样。
,inet_ntoa((struct in_addr )pHost->h_addr_list[i]));
是把对应的网址,转换成字符串形式,原本是二进制值,转成xxxxxxxxxxxx的形式。
这里就是把所有获取到的网址依次都输出。
获取方法:
IPHostEntry hostInfo = DnsGetHostByAddress(hostIPAddress);
ConsoleWriteLine("Host name : " + hostInfoHostName);
客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。除了一些只在本地运行的应用程序之外,一般安装在普通的客户机上,需要与服务端互相配合运行。因特网发展以后,较常用的用户端包括了如万维网使用的网页浏览器,收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端软件等。对于这一类应用程序,需要网络中有相应的服务器和服务程序来提供相应的服务,如数据库服务,电子邮件服务等等,这样在客户机和服务器端,需要建立特定的通信连接,来保证应用程序的正常运行。
java获取机器名,主要是使用InterAddress类,如下代码:
package comqiulinhe;import javanetInetAddress;
public class Ceshi {
public static void main(String[] args) {
InetAddress addr = null;
String address = "";
try {
addr = InetAddressgetLocalHost();//新建一个InetAddress类
address = addrgetHostName()toString();// 获得本机名称
} catch (Exception e) {
eprintStackTrace();
}
Systemoutprintln(address);
}
}
结果如下:
getpeername()
这个系统的调用十分简单。它将告诉你是谁在连接的另一端:
#include<sys/socketh>
int getpeername(int sockfd,struct sockaddr addr,int addrlen);
第一个参数是连接的数据流套接口文件描述符。
第二个参数是指向包含另一端的信息的数据结构sockaddr的指针。
第三个参数可以设置为sizeof(structsockaddr)。
如果出错,系统调用将返回-1。
一旦你获得了它们的地址,你可以使用inet_ntoa()或者gethostbyaddr()来得到更多的信息。
[目录]
gethostname()
系统调用gethostname()比系统调用getpeername()还简单。它返回程序正在运行的计算机的名字。系统调用gethostbyname()可以使用这个名字来决定你的机器的IP地址。
下面是一个例子:
#include<unistdh>
int gethostname(charhostname,size_tsize);
如果成功,gethostname将返回0。如果失败,它将返回-1。
Trackback: >
在SQLServer上得到客户端信息( *** 作的数据库名,计算机名,用户名,网卡物理地址,IP地址,程序名)\x0d\createprocp_getlinkinfo\x0d\@dbnamesysname=null,--要查询的数据库名,默认查询所有数据库的连接信息\x0d\@includeipbit=0--是否显示IP地址,因为查询IP地址比较费时,所以增加此控制\x0d\as\x0d\declare@dbidint\x0d\set@dbid=db_id(@dbname)\x0d\createtable#tb(idintidentity(1,1),dbnamesysname,hostnamenchar(128),loginnamenchar(128),net_addressnchar(12),net_ipnvarchar(15),prog_namenchar(128))\x0d\insertinto#tb(hostname,dbname,net_address,loginname,prog_name)\x0d\selectdistincthostname,db_name(dbid),net_address,loginame,program_namefrommastersysprocesses\x0d\wherehostname''and(@dbidisnullor)\x0d\if@includeip=0gotolb_show--如果不显示IP地址,就直接显示\x0d\declare@sqlvarchar(500),@hostnamenchar(128),@idint\x0d\createtable#ip(hostnamenchar(128),avarchar(200))\x0d\declaretbcursorlocalforselectdistincthostnamefrom#tb\x0d\opentb\x0d\fetchnextfromtbinto@hostname\x0d\while@@fetch_status=0\x0d\begin\x0d\set@sql='ping'+@hostname+'-a-n1-l1'\x0d\insert#ip(a)execmasterxp_cmdshell@sql\x0d\update#ipsetwherehostnameisnull\x0d\fetchnextfromtbinto@hostname\x0d\end\x0d\update#tbsetnet_ip=left(a,patindex('%:%',a)-1)\x0d\from#tbainnerjoin(\x0d\selecthostname,a=substring(a,patindex('Pingstatisticsfor%:%',a)+20,20)from#ip\x0d\wherealike'Pingstatisticsfor%:%')bonahostname=bhostname\x0d\lb_show:\x0d\selectid,数据库名=dbname,客户机名=hostname,用户名=loginname\x0d\,网卡物理地址=net_address,IP地址=net_ip,应用程序名称=prog_namefrom#tb\x0d\GO\x0d\\x0d\//显示所有本机的连接信息:\x0d\execp_getlinkinfo\x0d\//显示所有本机的连接信息,包含ip地址:\x0d\execp_getlinkinfo@includeip=1\x0d\//显示连接指定数据库的信息:\x0d\execp_getlinkinfo@dbname=表名,@includeip=1
以上就是关于java如何获取主机名字全部的内容,包括:java如何获取主机名字、C语言gethostname,gethostbyname、用C#如何获取客户端的计算机名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)