在Java的ICMP请求中应该获得哪些特权?

在Java的ICMP请求中应该获得哪些特权?,第1张

概述在Java的ICMP请求中应该获得哪些特权

我想通过Java Ping一个IP。 当我从命令行Ping并跟踪networking包时,我看到了ICMP请求。 当我从我的应用程序Ping,并跟踪networking包,我看到在端口7的TCP请求。

我已经检查了InetAddress.isReachable()的文档:

尝试到达主机尽力而为,但防火墙和服务器configuration可能会阻止导致不可达状态的请求,同时可能访问某些特定的端口。

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

JavaFX如何与X11一起使用?

代码适用于windows JDK 7,但不适用于linux JDK 7

java.lang.UnsupportedClassversionError:myApp:不支持major.minor版本51.0(无法加载类myApp)在linux上

Java linux非阻塞套接字超时行为

在检查服务状态时,neo4j找不到JAVA_HOME

我可以用运行我的Java应用程序的用户运行sudo需要的命令。

我的目的应该获得哪些特权? 我应该检查什么?

PS:我已经在stackoverflow.com问这个问题,因为它比Java系统问题更关系到Java问题(Java源代码需要运行)。

程序使用过时的(不是当前的)envvariables值

java安装tomcat作为服务

windows 7中的Watchservice不起作用

小猜测游戏GUI在两个窗口中打开

插件org.apache.maven.plugins:maven-install-plugin:2.4或其一个依赖无法parsing

你问关于linux还是Java? – 显然,运行程序的JVM进程需要具有打开“原始”ICMP套接字所需的所有linux权限,就像任何其他进程一样。

对于一个实现,请参阅例如Java_java_net_Inet4AddressImpl_isReachable0 ,它基本上归结为:

/* * Let's try to create a RAW socket to send ICMP packets * This usually requires "root" privileges,so it's likely to fail. */ fd = JVM_Socket(AF_INET,SOCK_RAW,IPPROTO_ICMP); if (fd != -1) { /* * It dIDn't fail,so we can use ICMP_ECHO requests. */ return Ping4(env,fd,&him,timeout,netif,ttl); } /* * Can't create a raw socket,so let's try a TCP socket */ ...

总结

以上是内存溢出为你收集整理的在Java的ICMP请求中应该获得哪些特权?全部内容,希望文章能够帮你解决在Java的ICMP请求中应该获得哪些特权?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: http://www.outofmemory.cn/langs/1154835.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存