如何根据IP地址获取目标服务器的操作系统名称?求教~~~
目标服务器是linux,有ip地址,怎么通过非第三方获取操作系统名称呢?求教各位,谢谢~

解决方案 »

  1.   

    这个无法获取。。你只能根据请求的头去分析,一般是分析请求头中的UA,如下:
    String userAgent = request.getHeader("user-agent");一般浏览器都会把操作平台传你的,你分析下
      

  2.   

    貌似可以通过ping目标IP地址,根据TTL判断操作系统信息。。具体请百度TTL
      

  3.   

    TTL值在100至130之间,主机系统为WINDOWS
    TTL值在240至255之间,主机系统为UNIX或LINUX
      

  4.   

    用PING命令,返回的数字能看出是什么系统,但是也只是个大概
      

  5.   

    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;
    }

    }