获取本地ip地址(即ipconfig出来的IP地址)

import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * 获取网络IP
 * 1、获取本地的IP地址
 * 2、获取本机的服务器名称
 * 3、获取远程服务器的主机IP地址
 * 4、获取远程服务器的所有主机IP
 *
 * 网络编程:
 * InetAddress 是用来封装IP地址相关信息的类
 *   getLocalHost()     为本地主机创建IP对象
 *   getByName(host)    根据域名获取服务器主机地址对象
 *   getAllByName(host) 为指定的一组同名的主机创建一个InetAddress对象数组
 *
 */
public class InternetInfo {

    /*
     * 获取本地主机IP地址
     */
    public static void getLocalIP() {
        // 创建本地主机IP地址对象
        try {
            InetAddress addr = InetAddress.getLocalHost();
            String hostAddr = addr.getHostAddress();        // 获取IP地址
            String hostName = addr.getHostName();           // 获取本地机器名
            System.out.println("本地IP地址:" + hostAddr);
            System.out.println("本地的机器名称:" + hostName);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }

    /**
     * 根据域名获取主机服务器的IP
     * @param hostName  域名
     */
    public static void getIPByName(String hostName) {
        try {
            // 根据域名创建主机地址对象
            InetAddress addr = InetAddress.getByName(hostName);
            // 获取主机IP
            String hostAddr = addr.getHostAddress();
            System.out.println("域名为:" + hostName + "的主机IP地址:" + hostAddr);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }

    /**
     * 根据域名获得主机所有的IP地址
     * @param hostName 域名
     */
    public static void getAllIPByName(String hostName) {
        try {
            InetAddress[] addrs = InetAddress.getAllByName(hostName);
            String[] ips = new String[addrs.length];
            System.out.println("域名为:" + hostName + "的主机所有的IP地址为:");
            for(int i = 0; i < addrs.length; ++i) {
                ips[i] = addrs[i].getHostAddress();
                System.out.println(ips[i]);
            }
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }

    // 测试
    public static void main(String[] args) {
        String hostName = "www.baidu.com";
        getLocalIP();
        getIPByName(hostName);
        getAllIPByName(hostName);
    }

}

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值