当前位置:编程学习 > JAVA >>

如何根据IP地址获取目标服务器的操作系统名称?

如何根据IP地址获取目标服务器的操作系统名称?求教~~~
目标服务器是linux,有ip地址,怎么通过非第三方获取操作系统名称呢?求教各位,谢谢~ --------------------编程问答-------------------- 各位大侠都没有解决方案吗????
好郁闷的问题啊。。。。 --------------------编程问答-------------------- 这个无法获取。。你只能根据请求的头去分析,一般是分析请求头中的UA,如下:
String userAgent = request.getHeader("user-agent");

一般浏览器都会把操作平台传你的,你分析下 --------------------编程问答-------------------- 这个我是知道的,是获取到访问者的信息
而目前我头疼的是想知道某一个IP地址的操作系统信息
我也不是要干坏事,是公司一个项目里面有个要求是要知道其他3台服务器的操作系统,想自动获取,其中还有数据库版本信息,数据库的版本信息能通过数据库链接后获取到,现在就难倒在获取操作系统上面 --------------------编程问答-------------------- 很多黑客工具都支持这一功能 --------------------编程问答-------------------- 这下搞复杂了。。。要实现这功能还得熟悉下黑客手段了,看来普通方法是实现不了了 --------------------编程问答-------------------- 估计不行把。。 --------------------编程问答-------------------- 貌似可以通过ping目标IP地址,根据TTL判断操作系统信息。。具体请百度TTL --------------------编程问答--------------------
引用 7 楼  的回复:
貌似可以通过ping目标IP地址,根据TTL判断操作系统信息。。具体请百度TTL

TTL值在100至130之间,主机系统为WINDOWS
TTL值在240至255之间,主机系统为UNIX或LINUX --------------------编程问答-------------------- 用PING命令,返回的数字能看出是什么系统,但是也只是个大概 --------------------编程问答-------------------- package com.sinosoft.test;


import java.net.InetAddress;


public class GetNameByIP {
public static void main(String[] args){


System.out.println("**********Get Names By IP*************");
String[] defNames=getAllNames("XXXXX");//XXXXX:IP地址
if(null!=defNames){
for(int i=0;i<defNames.length;i++){
System.out.println("One Of Names : "+defNames[i]);
}
}
}
public static String[] getAllNames(String hostIP){
String[] names=null;
try{
InetAddress[] addrs=InetAddress.getAllByName(hostIP);
if(null!=addrs){
names=new String[addrs.length];
for(int i=0;i<addrs.length;i++){
names[i]=addrs[i].getHostName();
}
}
}catch(Exception e){
names=null;
}
return names;
}

} --------------------编程问答-------------------- 不好意思,看错了,是操作系统哈
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,