局域网跨网段根据主机名找IP

本文介绍如何在局域网跨网段环境下,通过主机名快速查询对应计算机的IP地址。当前方法是遍历所有IP,效率较低,寻求更优解决方案。
摘要由CSDN通过智能技术生成

    本例需要被找的机器同时也在运行以下代码。目前是遍历所有IP进行查找,效率很低,在没找到更好的办法之前只好用它了。

/**
 * 在局域网(LAN)里面根据主机名找到对应的IP。
 * 设计作者: teasp
 * 信息描述:
 */
public class IpHostInLan
{
    private static final int PORT = 4321;
    private static final String NOT_FOUND = "NotFound";
    
    private ConcurrentHashMap<String, String> map = new ConcurrentHashMap<String, String>();
    
    private static IpHostInLan instance = new IpHostInLan();
    
    private volatile String resultIp = null;
    
    private IpHostInLan() 
    {
        new Thread() 
        {
            public void run()
            {
                try
                {
                    String localHost = InetAddress.getLocalHost().getHostName();
                    ServerSocket ss = new ServerSocket(PORT);
                    System.out.println("--------Listening to " + PORT + "----------");
                    while (true)
                    {
                        Socket socket = ss.accept();
                        try
                        {
                            
                            socket.getOutputStream().write(localHost.getBytes());
                            socket.getOutputStream().fl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值