获取ip、mac、地址

package com.dz.test;


import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
/**
 * 1.获取外网ip
 * 2.获取所在地理位置
 * 3.获取mac地址
 * @author Administrator
 *
 */
public class IpUtils {
/**
* 获取本地ip的公网地址以及地理位置
* @return
* @throws IOException
*/
    public static Map<String, String> getPublicIPAndAddress() throws Exception {  
        InputStream ins = null;  
        try {  
            URL url = new URL("http://1212.ip138.com/ic.asp");  
            URLConnection con = url.openConnection();  
            ins = con.getInputStream();  
            InputStreamReader isReader = new InputStreamReader(ins, "GBK");  
            BufferedReader bReader = new BufferedReader(isReader);  
            StringBuffer webContent = new StringBuffer();  
            String str = null;
            while ((str = bReader.readLine()) != null) {  
                webContent.append(str);  
            }  
            System.out.println(webContent);
            //公网ip
            String publicIP= webContent.substring(webContent.indexOf("[")+1, webContent.indexOf("]"));
            //地理位置
            String address=webContent.substring(webContent.indexOf("]")+5,webContent.indexOf("</center>"));
            Map<String, String> map=new HashMap<String, String>();
            map.put("publicIP", publicIP);
            map.put("address", address);
            return map;
        } finally {  
            if (ins != null) {
                ins.close();
            }
        }
    }
    /**
     * 获取本机ip地址
     * @return
     * @throws IOException
     */
public static String getMyIPLocal() throws Exception {  
   InetAddress ia = InetAddress.getLocalHost();  
   return ia.getHostAddress();  
}  

/**
* 获取本机mac地址
* @return
* @throws Exception
*/
public static String getLocalMac() throws Exception {
//获取ip地址
InetAddress ia = InetAddress.getLocalHost();
//获取网卡,获取地址
byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
StringBuffer sb = new StringBuffer("");
for(int i=0; i<mac.length; i++) {
if(i!=0) {
sb.append("-");
}
//字节转换为整数
int temp = mac[i]&0xff;
String str = Integer.toHexString(temp);
if(str.length()==1) {
sb.append("0"+str);
}else {
sb.append(str);
}
}
return sb.toString().toUpperCase();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值