当前位置: 首页 > 面试题库 >

Java如何ping IP地址

魏旭
2023-03-14
问题内容

我使用这部分代码来ping通Java中的ip地址,但只有ping通本地主机才能成功,而对于其他主机,程序会说该主机不可访问。我禁用了防火墙,但是仍然有此问题

public static void main(String[] args) throws UnknownHostException, IOException {
    String ipAddress = "127.0.0.1";
    InetAddress inet = InetAddress.getByName(ipAddress);

    System.out.println("Sending Ping Request to " + ipAddress);
    System.out.println(inet.isReachable(5000) ? "Host is reachable" : "Host is NOT reachable");

    ipAddress = "173.194.32.38";
    inet = InetAddress.getByName(ipAddress);

    System.out.println("Sending Ping Request to " + ipAddress);
    System.out.println(inet.isReachable(5000) ? "Host is reachable" : "Host is NOT reachable");
}

输出为:

Sending Ping Request to 127.0.0.1
Host is reachable
Sending Ping Request to 173.194.32.38
Host is NOT reachable

问题答案:

InetAddress.isReachable()根据javadoc:

“如果可以获取特权,典型的实现将使用ICMP ECHO REQUEST,否则它将尝试在目标主机的端口7(Echo)上建立TCP连接。”

选项1(ICMP)通常需要管理(root)权限。



 类似资料:
  • 我试图在Java创建一个地图,但失败了。 它告诉我在行的末尾需要或,但是,当我尝试其中一个时,我会收到错误。 将告诉我“映射是抽象的;无法实例化” 将告诉我“应为数组初始值设定项” 我对编码还不太熟悉,所以请对我友好一点,多多忍耐:)

  • 问题内容: 有没有办法获取Java对象的地址? 问题来自哪里?:首先,我读取属性文件,并将文件中的所有数据放入表中。属性文件可以更新。所以,我想听那个文件。我使用PropertyChangeSupport和PropertyChangeListener监听对象。 如果updatedStatus更改,那么我将更新表。MyString类具有私有字符串“ Value”。我想听属性文件。因此,应使updat

  • 此输出包括 1的MAC地址。无线LAN适配器WiFi 2。无线LAN适配器本地连接 3。以太网适配器蓝牙 4。以太网适配器虚拟盒 无论我是否连接到互联网,它都显示相同的输出。所以我的问题是,我如何确定我连接的是哪一个,即如果我连接并使用WiFi互联网,我需要WiFi MAC,如果我使用网线连接,我需要它。 并告诉如何使用Java更改/欺骗MAC地址。

  • 所以有几个网站会为你计算你的链接本地ipv6地址,就像这里的这个。 尽管如此,它并没有给出任何有用的关于这个地址是如何计算的,也没有输入参数是什么。那么,如果一个人知道自己的ipv4地址、子网掩码和网关地址,计算链路本地ipv6地址的过程(或算法)是什么?我正在使用SCTP套接字做一个项目,该项目使用ISATAP网络隧道和LL ipv6地址用于构建ISATAP地址。

  • 问题内容: 如何在Java Spring框架中注入Map?如果可能,请提供一些示例代码。 以下合法吗? 问题答案: 首先在您的内定义这样的地图: 然后像这样在您的任何bean中使用此Map:

  • 问题内容: 如何在Linux和Windows中正常停止Java进程? 什么时候被调用,什么时候不被调用? 终结器又如何呢? 我可以从外壳向Java进程发送某种信号吗? 我正在寻找最好的便携式解决方案。 问题答案: 在所有未强制终止VM的情况下,都会执行关机挂钩。因此,如果要发出“标准” kill(通过kill命令),则它们将执行。同样,它们将在调用后执行。 但是强行杀死(或),然后它们将不会执行。