java如何获取主机名字

java如何获取主机名字,第1张

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#如何获取客户端的计算机名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9342435.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存