導航:首頁 > 編程語言 > java獲取私有ip地址

java獲取私有ip地址

發布時間:2023-08-23 21:46:47

『壹』 java如何查詢本機ip地址和mac地址

Java中可以使用程序來獲取本地ip地址和mac地址沖宏首,使用InetAddress這個工具類,示例如下:

importjava.net.*;
publicclassNetInfo{
publicstaticvoidmain(String[]args){
newNetInfo().say();
}
publicvoidsay(){
散數try{
InetAddressi=InetAddress.getLocalHost();
System.out.println(i);//計算機名稱和IP
System.out.println(i.getHostName());//名稱
System.out.println(i.getHostAddress());//只獲得IP
}
catch(Exceptione){e.printStackTrace();}
}
}

也可以通過命令行窗口來查看絕春本地ip和mac地址,輸入命令:ipconfig。

『貳』 我在本機上,想寫一個java程序獲取我本機的外網ip地址,如何搞

import java.net.*;

public class Test {

public static void main(String[] args) throws UnknownHostException {
String IP = null;
String host = null;
InetAddress ia;

ia = InetAddress.getLocalHost();
host = ia.getHostName();// 獲取計算機名字
IP = ia.getHostAddress();// 獲取IP

System.out.println(host);
System.out.println(IP);
}

}

『叄』 怎樣通過Java程序 獲取本機IP地址..試了幾種方法都不行 獲取的都是192.168.*.*這種.想得到網路IP那種,求

你應該是拔號上網
如果可以的話,請搜索一下網路,得到java怎麼調用的方法,然後你可以解析ipconfig /all這個命令的結果,得到你想要的公網IP

大部分情況下,用戶都是通過路由來上網的,也就是說,電腦根本不知道自己的公網IP是多少,他只知道路由分配給它的內網IP,這個時候,我們只能通過別的網站來判斷。
下面是以前我以前寫的一個小程序,通過www.ip138.com得到自己的公網IP

程序我就不解釋了,既然你能懂J2EE,應該能看懂下面的代碼,無非是訪問網路資源,簡單的IO操作,字元串解析等。
public static void main(String[] args) throws Exception {
//
URL url = new URL("http://www.ip138.com/ip2city.asp");
URLConnection conn = url.openConnection();
conn.setRequestProperty(
"User-Agent",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15");
conn.setRequestProperty("Content-Type", "text/html");
conn.setRequestProperty("Accept",
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
InputStream is = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is,
"GB2312"));
String line = null;
while ((line = br.readLine()) != null) {
if (line.contains("您的IP地址是")) {
// System.out.println(line);
int start = line.indexOf('[') + 1;
int end = line.indexOf(']');
System.out.println(line.substring(start, end));
}
}
br.close();
}

『肆』 java中如何獲取用戶的IP地址及禁止此人

樓上的方法是不合理的。第一,如果用戶使用代理,是無法獲得真實Ip的0;第二,IF語句不能保證禁止IP,而且很多網站並不需要登錄的。給樓主些方法,可供參考。
1。 獲取用戶IP
public String getRemortIP(HttpServletRequest request) {
if (request.getHeader("x-forwarded-for") == null) {
return request.getRemoteAddr();
}
return request.getHeader("x-forwarded-for");
}

這種方法總是獲得用戶的真實IP
2。禁止IP,可以考慮從伺服器下手
(1) 如果用的是tomcat,那麼在tomcat_home/conf/server.xml中的<host></host>之間加一行代碼:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="192.168.1.1"/>
這樣192.168.1.1這個ip訪問webapp時會收到 403 錯誤
(2) 如果是apache那麼:
<Directory /var/web/dir1>
Allow from all
Deny from 111.111.111.111
</Directory>
上面限制單個IP,限制IP段用*號代替。如111.111.111.*

(3) 或者樓主也可以像樓上說的用代碼實現,給你個JS代碼:
<SCRIPT LANGUAGE="java script">
<!-- Begin
netscape = (navigator.appName.indexOf("Netscape") != -1);
version4 = (navigator.appVersion.indexOf("4.") != -1);

if (netscape && version4) {
ip = "" + java.net.InetAddress.getLocalHost().getHostAddress();
if (ip.indexOf("235.12") >= -1)
// 這是想要禁止訪問的IP例如: 235.12.xxx.xxx

{
alert("You are not permitted to access this site.");
history.go(-1);
}
}
// End -->
</script>

將以上代碼加入到<head>區域中。

『伍』 java中如何獲取到本機的外網ip地址

java獲取本機的外網ip示例:
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
* 獲取本機外網IP地址
* 思想是訪問網站http://checkip.dyndns.org/,得到返回的文本後解析出本機在外網的IP地址
* @author pieryon
*
*/
public class ExternalIpAddressFetcher {
// 外網IP提供者的網址
private String externalIpProviderUrl;

// 本機外網IP地址
private String myExternalIpAddress;

public ExternalIpAddressFetcher(String externalIpProviderUrl) {
this.externalIpProviderUrl = externalIpProviderUrl;

String returnedhtml = fetchExternalIpProviderHTML(externalIpProviderUrl);

parse(returnedhtml);
}

/**
* 從外網提供者處獲得包含本機外網地址的字元串
* 從http://checkip.dyndns.org返回的字元串如下
* <html><head><title>Current IP Check</title></head><body>Current IP Address: 123.147.226.222</body></html>
* @param externalIpProviderUrl
* @return
*/
private String fetchExternalIpProviderHTML(String externalIpProviderUrl) {
// 輸入流
InputStream in = null;

// 到外網提供者的Http連接
HttpURLConnection httpConn = null;

try {
// 打開連接
URL url = new URL(externalIpProviderUrl);
httpConn = (HttpURLConnection) url.openConnection();

// 連接設置
HttpURLConnection.setFollowRedirects(true);
httpConn.setRequestMethod("GET");
httpConn.setRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");

// 獲取連接的輸入流
in = httpConn.getInputStream();
byte[] bytes=new byte[1024];// 此大小可根據實際情況調整

// 讀取到數組中
int offset = 0;
int numRead = 0;
while (offset < bytes.length
&& (numRead=in.read(bytes, offset, bytes.length-offset)) >= 0) {
offset += numRead;
}

// 將位元組轉化為為UTF-8的字元串
String receivedString=new String(bytes,"UTF-8");

// 返回
return receivedString;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
in.close();
httpConn.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
}

// 出現異常則返回空
return null;
}

/**
* 使用正則表達式解析返回的HTML文本,得到本機外網地址
* @param html
*/
private void parse(String html){
Pattern pattern=Pattern.compile("(\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})", Pattern.CASE_INSENSITIVE);
Matcher matcher=pattern.matcher(html);
while(matcher.find()){
myExternalIpAddress=matcher.group(0);
}
}

/**
* 得到本機外網地址,得不到則為空
* @return
*/
public String getMyExternalIpAddress() {
return myExternalIpAddress;
}

public static void main(String[] args){
ExternalIpAddressFetcher fetcher=new ExternalIpAddressFetcher("http://checkip.dyndns.org/");

System.out.println(fetcher.getMyExternalIpAddress());
}
}

『陸』 JAVA如何獲得外網IP地址

java獲取外網ip地址方法:
public class Main {

public static void main(String[] args) throws SocketException {
System.out.println(Main.getRealIp());
}

public static String getRealIp() throws SocketException {
String localip = null;// 本地IP,如果沒有配置外網IP則返回它
String netip = null;// 外網IP

Enumeration<NetworkInterface> netInterfaces =
NetworkInterface.getNetworkInterfaces();
InetAddress ip = null;
boolean finded = false;// 是否找到外網IP
while (netInterfaces.hasMoreElements() && !finded) {
NetworkInterface ni = netInterfaces.nextElement();
Enumeration<InetAddress> address = ni.getInetAddresses();
while (address.hasMoreElements()) {
ip = address.nextElement();
if (!ip.isSiteLocalAddress()
&& !ip.isLoopbackAddress()
&& ip.getHostAddress().indexOf(":") == -1) {// 外網IP
netip = ip.getHostAddress();
finded = true;
break;
} else if (ip.isSiteLocalAddress()
&& !ip.isLoopbackAddress()
&& ip.getHostAddress().indexOf(":") == -1) {// 內網IP
localip = ip.getHostAddress();
}
}
}

if (netip != null && !"".equals(netip)) {
return netip;
} else {
return localip;
}
}
}

『柒』 java獲得IP地址

下面有一篇文章,介紹若何讀取物理網卡的地址 ,同樣的
你可以用這個方法讀取你所需要的本機IP地址

=======================================================
J2SE5.0新特性之ProcessBuilder
這個例子使用了J2SE5.0的ProcessBuilder類執行外部的程序,相對於 Runtime.exec ,它更方便,可以設置環境變數等。這里使用它在windows下讀取物理網卡的地址

package com.kuaff.jdk5package;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class ProcessBuilderShow
{
public static List getPhysicalAddress()
{
Process p = null;
//物理網卡列表
List address = new ArrayList();

try
{
//執行ipconfig /all命令
p = new ProcessBuilder("ipconfig", "/all").start();
}
catch (IOException e)
{
return address;
}
byte[] b = new byte[1024];
StringBuffer sb = new StringBuffer();
//讀取進程輸出值
InputStream in = p.getInputStream();
try
{
while (in.read(b)>0)
{
sb.append(new String(b));
}
}
catch (IOException e1)
{
}
finally
{
try
{
in.close();
}
catch (IOException e2)
{
}
}
//以下分析輸出值,得到物理網卡
String rtValue = sb.substring(0);
int i = rtValue.indexOf("Physical Address. . . . . . . . . :");
while(i>0)
{
rtValue = rtValue.substring(i + "Physical Address. . . . . . . . . :".length());
address.add(rtValue.substring(0,18));
i = rtValue.indexOf("Physical Address. . . . . . . . . :");
}
return address;
}
public static void main(String[] args)
{
List address = ProcessBuilderShow.getPhysicalAddress();
for(String add:address)
{
System.out.printf("物理網卡地址:%s%n", add);
}
}
}

閱讀全文

與java獲取私有ip地址相關的資料

熱點內容
ca證書管理器linux 瀏覽:358
蘋果id安全提示問題3個字元 瀏覽:949
iphone上好的拍照軟體 瀏覽:579
word內嵌文件怎麼下載 瀏覽:864
8s16升級 瀏覽:340
計算機網路技術基礎pdf 瀏覽:544
javafrom提交地址參數 瀏覽:721
git發布版本 瀏覽:728
vc修改文件名 瀏覽:149
linux65從域 瀏覽:321
用什麼東西壓縮文件 瀏覽:406
怎麼刪除ipad隱藏的APP 瀏覽:981
編程如何佔用大量內存 瀏覽:116
多個excel表格文件如何組合 瀏覽:918
ubuntu內核升級命令 瀏覽:679
pgp文件夾 瀏覽:894
一鍵還原的文件是什麼格式 瀏覽:581
女漢子微信名霸氣十足 瀏覽:65
win10手機藍屏修復 瀏覽:419
windows2008激活工具 瀏覽:259

友情鏈接