java 怎样利用IP地址获得局域网计算机的名字、mac地址、工作组?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 怎样利用IP地址获得局域网计算机的名字、mac地址、工作组?相关的知识,希望对你有一定的参考价值。

指定IP的MAC 代码如下: Java code
System.out.println("192.168.1.187对应网卡的MAC是:");NetworkInterface ne=NetworkInterface.getByInetAddress(InetAddress.getByName("192.168.1.187"));byte[]mac=ne.getHardwareAddress();String mac_s=hexByte(mac[0])+":"+hexByte(mac[1])+":"+ hexByte(mac[2])+":"+hexByte(mac[3])+":"+ hexByte(mac[4])+":"+hexByte(mac[5]);System.out.println(mac_s); 程序运行结果: 192.168.1.187对应网卡的MAC是: 00:0c:f1:20:75:58

工作组和计算机名字类似,可以到库里找
参考技术A 关注 参考技术B 我也下想知道,正在学,刚起步,白痴一个,似乎和JAVA.NET有关的吧。 参考技术C 哎,和我的毕业设计差不多,代码太多了,发个链接给你看看吧
http://hi.baidu.com/jacobi19871112/blog/item/a817b8b5da44d5c636d3ca80.html

【PS】:我还没有答辩呢,代码暂时不公开,哈哈.

java编程,获取局域网内服务器端的ip地址

建立了个服务器
server = new ServerSocket();
server.setReuseAddress(true);
InetSocketAddress aa = new InetSocketAddress(port);
server.bind(aa);
假设服务器地址是192.168.1.130,客户端在连接之前进行扫描,怎么知道192.168.1.XXX的port端口有服务器正等待连接呢?
能否在连接前获得服务器的其他相关信息,比如服务器的名称等等。
端口号已知的(10000),不用管端口号

socket.connect(new InetSocketAddress(ip, port), timeout)

看有没有抛异常   没异常就是已经连接上了

想获取服务器名称    可以用ARP协议   或者测试连接的时候服务器回应一个名称

package baiduzhidao;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;

public class Client 

    public static void main(String[] args) 
        /**
         * 端口号
         */
        int port = 10000;
        /**
         * 连接延时
         */
        int timeout = 300;
        System.out.println("Scanner Start...");
        Socket socket;
        /**
         * 扫描
         */
        for (int i = 1, k = 254; i < k; i++) 
            if ((socket = isOnLine("192.168.1." + i, port, timeout)) != null) 
                System.out.println("Server:"
                        + socket.getInetAddress().getHostAddress()
                        + ":" + socket.getPort() + " Is Waiting...");
            

            /**
             * 关闭连接
             */
            if (socket != null && !socket.isClosed()) 
                try 
                    socket.close();
                 catch (IOException e) 
                    socket = null;
                
            
        
        System.out.println("Scanner end...");
    

    /**
     * 测试连接服务器,返回连接成功后的Socket
     * 
     * @param ip
     *            服务器Ip
     * @param port
     *            服务器端口号
     * @param timeout
     *            连接延时
     * @return 返回连接成功后的Socket
     */
    private static Socket isOnLine(String ip, int port, int timeout) 
        Socket socket = new Socket();
        try 
            socket.connect(new InetSocketAddress(ip, port), timeout);
         catch (IOException e) 
            return null;
        
        return socket;
    

参考技术A 这个好像必须得指定端口号吧....。。如果真的可以那也不是java能解决的,太底层了,估计得用C或其他吧;追问

端口号已知的(10000),不用管端口号

追答

首先你得指定ip,然后根据端口号找到相应的程序。。。你想利用端口号找ip这...==

以上是关于java 怎样利用IP地址获得局域网计算机的名字、mac地址、工作组?的主要内容,如果未能解决你的问题,请参考以下文章

服务器IP、内网IP和外网IP有啥联系?分别是怎样获得的?

请问 c语言怎样获取计算机ip地址啊

用javaScript怎么样获取用户本地的ip地址?

如何获取局域网内所有IP地址 java代码

怎样通过计算机ip地址访问sql server 2008数据库

怎样用IP访问局域网共享文件