/**
* 获取外网的IP(要访问Url,要放到后台线程里处理)
*
* @Title: GetNetIp
* @Description:
* @param @return
* @return String
* @throws
*/
public
static
String GetNetIp() {
URL infoUrl =
null
;
InputStream inStream =
null
;
String ipLine =
""
;
HttpURLConnection httpConnection =
null
;
try
{
URLConnection connection = infoUrl.openConnection();
httpConnection = (HttpURLConnection) connection;
int
responseCode = httpConnection.getResponseCode();
if
(responseCode == HttpURLConnection.HTTP_OK) {
inStream = httpConnection.getInputStream();
BufferedReader reader =
new
BufferedReader(
new
InputStreamReader(inStream,
"utf-8"
));
StringBuilder strber =
new
StringBuilder();
String line =
null
;
while
((line = reader.readLine()) !=
null
)
strber.append(line +
"\n"
);
Pattern pattern = Pattern
.compile(
"((?:(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d))))"
);
Matcher matcher = pattern.matcher(strber.toString());
if
(matcher.find()) {
ipLine = matcher.group();
}
}
}
catch
(MalformedURLException e) {
e.printStackTrace();
}
catch
(IOException e) {
e.printStackTrace();
}
finally
{
try
{
inStream.close();
httpConnection.disconnect();
}
catch
(IOException e) {
e.printStackTrace();
}
}
return
ipLine;
}
/**
* 获取本地IP
*
* @return
*/
public
static
String getLocalIpAddress() {
try
{
Enumeration<networkinterface> en = NetworkInterface
.getNetworkInterfaces();
while
(en.hasMoreElements()) {
NetworkInterface ni = en.nextElement();
Enumeration<inetaddress> enIp = ni.getInetAddresses();
while
(enIp.hasMoreElements()) {
InetAddress inet = enIp.nextElement();
if
(!inet.isLoopbackAddress()
&& (inet
instanceof
Inet4Address)) {
return
inet.getHostAddress().toString();
}
}
}
}
catch
(SocketException e) {
e.printStackTrace();
}
return
"0"
;
}</inetaddress></networkinterface>