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