精华内容
下载资源
问答
  • JAVA获取计算机IP地址

    2021-02-13 00:41:45
    import java.net.InetAddress;import java.net.UnknownHostException;public class HuoQu {public static void main(String[] args) throws UnknownHostException {// TODO Auto-generated method stubInetAddress I...

    import java.net.InetAddress;

    import java.net.UnknownHostException;

    public class HuoQu {

    public static void main(String[] args) throws UnknownHostException {

    // TODO Auto-generated method stub

    InetAddress IP = InetAddress.getByName("DESKTP-MDC2C");                    //在我的电脑属性查看名称粘贴过来,此为我的虚拟名。

    System.out.println("第一种方式"+IP);

    InetAddress ip = InetAddress.getLocalHost();

    System.out.println("第二种方式"+ip);

    byte[] addr= {10,10,21,(byte)168};                                                   //在电脑网络设置查看自己的IP地址,粘贴过来,此为我的虚拟地址。

    InetAddress ip2=InetAddress.getByAddress(addr);

    System.out.println("第三种方式"+ip2);

    System.out.println(ip2.getHostName());

    byte[] address=ip2.getAddress();

    for(byte a:address) {

    int b=(a<0)?(a+256):a;

    System.out.println("常规方法"+b+".");

    }

    }

    }

    展开全文
  • 现在所有节点都创建一个Socket,其目标IP作为称为自举节点的特殊节点的IP。然后节点创建自己的ServerSocket并开始侦听连接。引导节点维护一个节点列表,并在被查询时返回它们。现在我需要的是节点必须将其IP注册到自...

    问题

    我正在尝试开发一个系统,其中有不同的节点在不同的系统上或在同一系统上的不同端口上运行。

    现在所有节点都创建一个Socket,其目标IP作为称为自举节点的特殊节点的IP。然后节点创建自己的ServerSocket并开始侦听连接。

    引导节点维护一个节点列表,并在被查询时返回它们。

    现在我需要的是节点必须将其IP注册到自举节点。我尝试使用cli.getInetAddress(),因为客户端连接到引导节点的ServerSocket,但这不起作用。

    我需要客户端注册其PPP IP(如果可用);

    否则LAN IP(如果有);

    否则它必须注册127.0.0.1,假设它是同一台计算机。

    使用代码:

    System.out.println(Inet4Address.getLocalHost().getHostAddress());

    要么

    System.out.println(InetAddress.getLocalHost().getHostAddress());

    我的PPP连接IP地址是:117.204.44.192,但上面的返回值为192.168.1.2

    编辑

    我使用以下代码:

    Enumeration e = NetworkInterface.getNetworkInterfaces();

    while(e.hasMoreElements())

    {

    NetworkInterface n = (NetworkInterface) e.nextElement();

    Enumeration ee = n.getInetAddresses();

    while (ee.hasMoreElements())

    {

    InetAddress i = (InetAddress) ee.nextElement();

    System.out.println(i.getHostAddress());

    }

    }

    我能够获得所有与NetworkInterface相关的IP地址,但我如何区分它们呢?这是我得到的输出:

    127.0.0.1

    192.168.1.2

    192.168.56.1

    117.204.44.19

    #1 热门回答(233 赞)

    在最一般的情况下,这可能有点棘手。

    从表面上看,InetAddress.getLocalHost()应该为你提供该主机的IP地址。问题是主机可能有很多网络接口,接口可能绑定到多个IP地址。最重要的是,并非所有IP地址都可以在你的计算机或LAN之外访问。例如,它们可以是虚拟网络设备的IP地址,专用网络IP地址等。

    这意味着InetAddress.getLocalHost()返回的IP地址可能不适合使用。

    你怎么处理这个?

    一种方法是使用NetworkInterface.getNetworkInterfaces()获取主机上的所有已知网络接口,然后迭代每个NI的地址。

    另一种方法是(以某种方式)获取主机的外部广告FQDN,并使用InetAddress.getByName()来查找主IP地址。 (但是你如何得到它,以及如何处理基于DNS的负载均衡器?)

    前一个版本的变体是从配置文件或命令行参数中获取首选FQDN。

    另一种变体是从配置文件或命令行参数中获取首选IP地址。

    总之,InetAddress.getLocalHost()通常可以工作,但是你可能需要为在"复杂"网络环境中运行代码的情况提供替代方法。

    我能够获得与所有网络接口相关的所有IP地址,但我如何区分它们?

    127.xxx.xxx.xxx范围内的任何地址都是"环回"地址。它只对"这个"主机可见。

    192.168.xxx.xxx范围内的任何地址都是私有(即本地站点)IP地址。这些保留在组织内使用。这同样适用于10.xxx.xxx.xxx地址,172.16.xxx.xxx到172.31.xxx.xxx。

    169.254.xxx.xxx范围内的地址是链路本地IP地址。这些保留用于单个网段。

    224.xxx.xxx.xxx到239.xxx.xxx.xxx范围内的地址是多播地址。

    地址255.255.255.255是广播地址。

    其他任何东西都应该是有效的公共点对点IPv4地址。

    事实上,InetAddress API提供了测试环回,链接本地,站点本地,多播和广播地址的方法。你可以使用这些来排序你获得的哪个IP地址是最合适的。

    #2 热门回答(49 赞)

    这里发布的测试IP歧义解决方法代码来自https://issues.apache.org/jira/browse/JCS-40(InetAddress.getLocalHost()在Linux系统上不明确):

    /**

    * Returns an InetAddress object encapsulating what is most likely the machine's LAN IP address.

    *

    * This method is intended for use as a replacement of JDK method InetAddress.getLocalHost, because

    * that method is ambiguous on Linux systems. Linux systems enumerate the loopback network interface the same

    * way as regular LAN network interfaces, but the JDK InetAddress.getLocalHost method does not

    * specify the algorithm used to select the address returned under such circumstances, and will often return the

    * loopback address, which is not valid for network communication. Details

    * here.

    *

    * This method will scan all IP addresses on all network interfaces on the host machine to determine the IP address

    * most likely to be the machine's LAN address. If the machine has multiple IP addresses, this method will prefer

    * a site-local IP address (e.g. 192.168.x.x or 10.10.x.x, usually IPv4) if the machine has one (and will return the

    * first site-local address if the machine has more than one), but if the machine does not hold a site-local

    * address, this method will return simply the first non-loopback address found (IPv4 or IPv6).

    *

    * If this method cannot find a non-loopback address using this selection algorithm, it will fall back to

    * calling and returning the result of JDK method InetAddress.getLocalHost.

    *

    *

    * @throws UnknownHostException If the LAN address of the machine cannot be found.

    */

    private static InetAddress getLocalHostLANAddress() throws UnknownHostException {

    try {

    InetAddress candidateAddress = null;

    // Iterate all NICs (network interface cards)...

    for (Enumeration ifaces = NetworkInterface.getNetworkInterfaces(); ifaces.hasMoreElements();) {

    NetworkInterface iface = (NetworkInterface) ifaces.nextElement();

    // Iterate all IP addresses assigned to each card...

    for (Enumeration inetAddrs = iface.getInetAddresses(); inetAddrs.hasMoreElements();) {

    InetAddress inetAddr = (InetAddress) inetAddrs.nextElement();

    if (!inetAddr.isLoopbackAddress()) {

    if (inetAddr.isSiteLocalAddress()) {

    // Found non-loopback site-local address. Return it immediately...

    return inetAddr;

    }

    else if (candidateAddress == null) {

    // Found non-loopback address, but not necessarily site-local.

    // Store it as a candidate to be returned if site-local address is not subsequently found...

    candidateAddress = inetAddr;

    // Note that we don't repeatedly assign non-loopback non-site-local addresses as candidates,

    // only the first. For subsequent iterations, candidate will be non-null.

    }

    }

    }

    }

    if (candidateAddress != null) {

    // We did not find a site-local address, but we found some other non-loopback address.

    // Server might have a non-site-local address assigned to its NIC (or it might be running

    // IPv6 which deprecates the "site-local" concept).

    // Return this non-loopback candidate address...

    return candidateAddress;

    }

    // At this point, we did not find a non-loopback address.

    // Fall back to returning whatever InetAddress.getLocalHost() returns...

    InetAddress jdkSuppliedAddress = InetAddress.getLocalHost();

    if (jdkSuppliedAddress == null) {

    throw new UnknownHostException("The JDK InetAddress.getLocalHost() method unexpectedly returned null.");

    }

    return jdkSuppliedAddress;

    }

    catch (Exception e) {

    UnknownHostException unknownHostException = new UnknownHostException("Failed to determine LAN address: " + e);

    unknownHostException.initCause(e);

    throw unknownHostException;

    }

    }

    #3 热门回答(40 赞)

    你可以使用java'sInetAddressclass来实现此目的。

    InetAddress IP=InetAddress.getLocalHost();

    System.out.println("IP of my system is := "+IP.getHostAddress());

    我系统的输出= IP of my system is := 10.100.98.228

    返回文本演示文稿中的IP地址字符串。

    或者你也可以

    InetAddress IP=InetAddress.getLocalHost();

    System.out.println(IP.toString());

    输出= IP of my system is := RanRag-PC/10.100.98.228

    展开全文
  • Java编程中,如何获取本地计算机IP地址和主机名?以下示例显示如何使用InetAddress类的getLocalAddress()方法获取系统的本地IP地址和主机名。package com.yiibai;import java.net.InetAddress;public class Get...

    在Java编程中,如何获取本地计算机的IP地址和主机名?

    以下示例显示如何使用InetAddress类的getLocalAddress()方法获取系统的本地IP地址和主机名。

    package com.yiibai;

    import java.net.InetAddress;

    public class GetLocalIPAddress {

    public static void main(String[] args) throws Exception {

    InetAddress addr = InetAddress.getLocalHost();

    System.out.println("Local HostAddress: " + addr.getHostAddress());

    String hostname = addr.getHostName();

    System.out.println("Local host name: " + hostname);

    }

    }

    Java

    上述代码示例将产生以下结果 -

    Local HostAddress: 192.168.1.50

    Local host name: YB-PC

    用Java来获取访问者真实的IP地址

    用Java来获取访问者真实的IP地址 转载 2016年06月07日 14:36:02 标签: 16497 编辑 删除 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAdd ...

    Java 实例 - 获取本机ip地址及主机名

    package guyu.day0824; import java.net.InetAddress; /** * @Author: Fred * @Date: 2020/8/24 09:39 */ p ...

    Java如何从IP地址查找主机名?

    在Java编程中,如何从IP地址查询出主机名? 以下示例显示了如何通过net.InetAddress类的InetAddress.getByName()方法将指定的IP地址查到主机名称. package ...

    Apache服务(基于IP地址,主机名,端口号)

    安装Apache服务程序 需要注意apache服务程序的软件包名称叫做httpd,因此直接执行yum install apache则是错误的. [root@liuxuanke-hbza ~]# yum ...

    在cmd中获取ip地址和主机名

    将下面的文件放到一个bat文件当中,以管理员身份运行. @echo off &setlocal enabledelayedexpansion Rem '/*========获取本机的IP地址( ...

    logresolve - 解析Apache日志中的IP地址为主机名

    logresolve是一个解析Apache访问日志中IP地址的后处理程序. 为了使对名称服务器的影响降到最低,logresolve拥有极为自主的内部散列表缓存, 使每个IP值仅仅在第一次从日志文件中读 ...

    修改虚拟机CentOS系统ip地址和主机名

    按照教程安装了虚拟机但是未配置静态IP,所以导致IP地址经常变化,CRT,mysql等连接时经常出现问题. 所以修改虚拟机内CentOS系统的IP为静态IP. 一.查看当前网关 虚拟机-->[编 ...

    Java获取本地IP地址和主机名

    方式一:通过java.net.InetAddress类获取 public void test1() { try { InetAddress addr = InetAddress.getLocalHos ...

    Java里面获取当前服务器的IP地址

    public static void main(String[] args) { try { InetAddress address = InetAddress.getLocalHost();//获取 ...

    随机推荐

    centos 7 升级后yum install出现Exiting on user cancel

    centos 7 升级后yum install出现Exiting on user cancel centos 7.x升级后用yum install进行安装时经常出现Exiting on user ca ...

    jq中 load&lpar;&rpar;方法 简介

    load()方法会在元素的onload事件中绑定一个处理函数.如果处理函数绑定给window对象,则会在所有内容(包括窗口,框架,对象和图像等)加载完毕后触发,如果处理函数绑定在元素上,则会在元素的内 ...

    linux挂载U盘(转载)

    一.Linux挂载U盘:1.插入u盘到计算机,如果目前只插入了一个u盘而且你的硬盘不是scsi的硬盘接口的话,那它的硬件名称为:sda1.2.在mnt目录下先建立一个usb的目录(如:[root@lo ...

    怎样控制界面控件之进度条&lpar;ProgressBar&rpar;功能

    一.基础知识: 1.ProgressBar在界面文件XML中的布局: [html] 点 ...

    &period;net MVC4 来一个简单的分页代码

    action VodeEntities db = new NewVode.Models.VodeEntities(); ; ) { var sql = "select * ,row_numb ...

    &lt&semi;摘录&gt&semi;Fedora添加国内源和本地源

    Fedora添加国内源和本地源 http://www.cnblogs.com/hummersofdie/p/3915070.html fedora的软件源信息文件(*.repo)都 ...

    展开全文
  • java获取计算机信息

    2021-08-04 16:05:29
    @Test public void aTests() { try{ InetAddress addr = InetAddress.getLocalHost(); //获取本机ip String ip=addr.... //获取本机计算机名称 String hostName=addr.getHostName().toString(); System.out.
    @Test
    public void aTests() {
        try{
            InetAddress addr = InetAddress.getLocalHost();
            //获取本机ip
            String ip=addr.getHostAddress().toString();
            //获取本机计算机名称
            String hostName=addr.getHostName().toString();
            System.out.println("本机IP:"+ip);
            System.out.println("本机名称:"+hostName);
            System.out.println("操作系统的名称:"+System.getProperty("os.name"));
            System.out.println("操作系统的版本:"+System.getProperty("os.version"));
            System.out.println("操作系统的位数:"+System.getProperty("os.arch"));
            System.out.println("操作系统用户名:"+System.getProperty("user.name"));
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    展开全文
  • java怎么获取局域网内所有主机ip关注:53答案:2mip版解决时间 2021-01-27 21:31提问者夢岭杺2021-01-27 12:02java怎么获取局域网内所有主机ip最佳答案二级知识专家风是甜的2021-01-27 13:32public void PingAll() ...
  • 1 packagecom.agen....23 importjava.io.BufferedReader;4 importjava.io.InputStream;5 importjava.io.InputStreamReader;6 importjava.net.InetAddress;7 importjava.net.NetworkInterface;8 importjava.util.A...
  • DOS命令 命令 意义 net view 获取局域网中的所有主机名 ipconfig -all 获取本地IP,主机名,MAC地址 arp -a 获取本局域网中的所有IP地址和物理地址 ping -a x.x.DOS命令命令意义net view获取局域网中的所有主机名...
  • package ...import java.net.InetAddress;import java.net.NetworkInterface;import java.util.Formatter;import java.util.Locale;import java.util.Map;import java.util.Properties;public clas...
  • import java.net.InetAddress;import java.net.UnknownHostException;public class Test {public static void main(String[] args) {try {InetAddress inetAddress = InetAddress.getLocalHost();System.out.println...
  • import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Map; import java.util.Properties; import org.hyperic.sigar.CpuInfo; import org.hyperic.sigar.CpuPerc; import org....
  • 想了解java获取linux服务器上的IP操作的相关内容吗,gzy_0412在本文为您仔细讲解java linux服务器IP的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java,linux服务器,IP,下面大家一起来学习吧。...
  • import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.InetAddress;import java.net.NetworkInterface;import java.util.ArrayList;im...
  • 查看InetAddress.getAllByName()的源代码,您会发现,如果提供的String是IP地址的文本表示形式,则实际上并没有进行DNS查询.它仅返回一个包含单个包含IP的InetAdddress对象的数组.他们甚至在该方法中添加了一个方便的...
  • java获取计算机用户名

    2021-06-16 08:21:26
    NetworkInfo()Dim wshnetwork, info As StringSet wshnetwork = CreateObject("WScript.Network") '获取当前电脑用户信息一、用户名命名规范:总纲:用户名规范包括通用规范和特殊原则。A.通用规范:a.用户名只能由...
  • 本文实例讲述了Java获取服务器IP及端口的方法。分享给大家供大家参考,具体如下:前几天写过一个获取远程服务器的IP和端口的程序,从网上查了一些资料顺便加一些自己的理解,希望对大家有所帮助:struts2 获取...
  • maxmind免费数据库maven位置:用来获取所要用的数据库文件(GeoLite2-City.mmdb)org.elasticsearchgeolite2-databases201510292. 示例importjava.io.File;importjava.net.InetAddress;importcom.maxmind.geoip2....
  • 1 importjava.net.InetAddress;2 importjava.net.UnknownHostException;3 importjava.util.Map;4 importjava.util.Properties;5 importorg.hyperic.sigar.CpuInfo;6 importorg.hyperic.sigar.CpuPerc;7 importorg.hy...
  • 注:有任何问题请随时联系,15712116094@163.comHttpServletRequest request = ...System.out.println("浏览器基本信息:"+request.getHeader("user-agent"));System.out.println("客户端系统名称:"+System.getPr...
  • Java 获取本机IP地址

    2021-04-30 09:50:50
    Java中如何准确的获取到本机IP地址呢?网上大部分的做法是InetAddress.getLocalHost().getHostAddress()。这的确能获取到本机IP地址,但是是不准确的。因为忽略了一个问题,网络环境是多变的,一台计算机不同的...
  • public class HardWareUtils {/** * * 获取主板序列号 * * * * @return */public static String getMotherboardSN() {String result = "";try {File file = File.createTempFile("realhowto", ".vbs");file.d...
  • packagecom.yjm.testmac;importjava.net.InetAddress;importjava.net.NetworkInterface;importjava.net.SocketException;importjava.net.UnknownHostException;importjava.util.Enumeration;publicclassMacT...
  • 我正在尝试提供一个程序,将计算机从A发送...我的程序应该能够将给定的计算机名解析为ip地址,以便将IP地址作为参数包含在我的DatagramPacket构造函数中。我尝试使用以下方法进行解析,但我得到javax.naming.Commun...
  • How to get the ip of the computer on linux through Java ?I searched the net for examples, I found something regarding NetworkInterface class, but I can't wrap my head around how I get the Ip address.W...
  • 通过ipconifg,ifconfig获得计算机信息; * 3.再用模式匹配方式查找MAC地址,与操作系统的语言无关> * * //* Description: <取计算机名--从环境变量中取> * abstract 限制继承/创建实例 */ public abst...
  • Java编程中,如何从IP地址查询出主机名?以下示例显示了如何通过net.InetAddress类的InetAddress.getByName()方法将指定的IP地址查到主机名称。package com.yiibai;import java.net.InetAddress;public class ...
  • } public void setMIpAddress(String ipAddress) { mIpAddress = ipAddress; } public String getOsName() { return osName; } public void setOsName(String osName) { this.osName = osName; } ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,927
精华内容 29,970
关键字:

java获取计算机ip的所有信息

java 订阅