導航:首頁 > 編程語言 > java讀取ip

java讀取ip

發布時間:2025-01-02 01:33:13

java中獲取本地IP地址

方法如下:
方法一,使用CMD命令
public static String getLocalIPForCMD(){
StringBuilder sb = new StringBuilder();
String command = "cmd.exe /c ipconfig | findstr IPv4";
try {
Process p = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while((line = br.readLine()) != null){
line = line.substring(line.lastIndexOf(":")+2,line.length());
sb.append(line);
}
br.close();
p.destroy();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
方法二,使用Java方法:
public static String getLocalIPForJava(){
StringBuilder sb = new StringBuilder();
try {
Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
while (en.hasMoreElements()) {
NetworkInterface intf = (NetworkInterface) en.nextElement();
Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses();
while (enumIpAddr.hasMoreElements()) {
InetAddress inetAddress = (InetAddress) enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress() && !inetAddress.isLinkLocalAddress()
&& inetAddress.isSiteLocalAddress()) {
sb.append(inetAddress.getHostAddress().toString()+"\n");
}
}
}
} catch (SocketException e) { }
return sb.toString();
}

⑵ 手把手教你用Java獲取IP歸屬地

本文旨在手把手教你使用Java實現獲取IP歸屬地的功能,以解決各大平台如微信公眾號、知乎和抖音等所推出的相關功能。實現這一目標的步驟涉及獲取IP地址、解決Nginx反向代理問題以及通過IP獲取歸屬地等關鍵環節。

首先,我們需要基於Spring Boot搭建項目,添加控制器(Controller)中使用HttpServletRequest獲取IP地址。然而,在本地環境下,獲取的IP可能是0:0:0:0:0:0:0:1或區域網IP,這些都不具備公網訪問的能力,因此需要將項目部署至外網伺服器,以確保能成功獲取到公網IP。

面對Nginx反向代理的挑戰,我們需要在Nginx的配置文件中添加特定的配置,確保客戶端請求的IP能夠被正確傳入Nginx服務。通過這一措施,最終獲取到的是客戶端的真實IP,而非Nginx伺服器的IP。

獲取到IP後,接下來的步驟是獲取歸屬地。有多種方法可以實現這一目標,本文將介紹兩種主要途徑:一是通過IP歸屬地API獲取,需發起HTTP請求,使用Spring Boot的RestTemplate來完成;二是通過本地地址庫獲取,推薦使用Ip2region庫,該庫以微秒級的速度進行查詢,無需擔心API服務中斷的問題。

為了實現本地地址庫的使用,我們首先需要從GitHub官網下載ip2region.xdb地址庫,並將其放置在項目資源目錄下。接下來,引入相應的Maven依賴,編寫代碼以完成IP歸屬地的查詢。最終,通過獲取region信息,即可獲取到IP的歸屬地,如「中國|0|廣東省|廣州市|電信」等。

為驗證上述程序的有效性,我們以小程序的形式展示IP歸屬地獲取功能,並附上頁面效果截圖。只需通過掃描二維碼,即可查詢到自身的歸屬地信息,直觀且便捷。

⑶ java中如何獲取使用者的IP地址及禁止此人

java中如何獲取使用者的IP地址及禁止此人

如果你是javaWeb,可以在過濾器中使用request.getRemoteAddr() ,發現此IP直接跳轉到無用的頁面或者不存在的頁面
如果你是socket,也可以通過socket.getIAddress()獲取IP,發現此IO直接把他的連線關閉就可以了

如何獲取使用者伺服器的IP地址

static$realip;

if(isset($_SERVER)){

if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){

$realip=$_SERVER["HTTP_X_FORWARDED_FOR"];

}elseif(isset($_SERVER["HTTP_CLIENT_IP"])){

$realip=$_SERVER["HTTP_CLIENT_IP"];

}else{

$realip=$_SERVER["REMOTE_ADDR"];

}

}else{

if(getenv("HTTP_X_FORWARDED_FOR")){

$realip=getenv("HTTP_X_FORWARDED_FOR");

}elseif(getenv("HTTP_CLIENT_IP")){

$realip=getenv("HTTP_CLIENT_IP");

}else{

$realip=getenv("REMOTE_ADDR");

}

}

return$realip;

}

shopnc怎麼獲取使用者的ip地址

輸入本地IP地址,進入到安裝頁面,點選"...
1
檢視環境沒有問題後,繼續下一步!
2
選擇安裝方式後,繼續下一步!
3
填寫資料庫和網站後台賬號密碼。如果是...
4
安裝成功後,我們在瀏覽器輸入:"127.0.0...
5
點選更新站點快取
6
選擇全部後,點選提交
7
現在你就可以開始你的電商之旅了!

如何獲取訪問使用者ip地址

請問你要用的是什麼程式碼來獲取呀??

如何獲取登入使用者的IP地址

public static string GetIP()
{
string ip;
if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
{
ip = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
ip = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
}
return ip;
}

如何獲取android本機使用者名稱及ip地址

使用者名稱就是您的手機型號。ip地址可以通過瀏覽器進入網路搜索【ip】,即可以顯示您的手機的ip地址。
望採納,謝謝!

客戶端C++,Java伺服器如何獲取使用者真實的外網IP地址?

這個應該和語言沒有關系吧,你釋出個JavaWeb專案,你是怎麼獲取客戶的Ip地址的?難道瀏覽器都是java編寫的嗎?
這個應該是取決與你的情況吧,直接獲取Ip地址就好了

java如何獲取使用者真實的ip

1、如果伺服器如果沒有採用反向代理,而且客戶端沒有用正向代理的話,那麼可以獲取客戶端的真實IP地址request.getRemoteAddr()
2、如果伺服器如果沒有採用反向代理,而且客戶端有用正向代理的話,那麼通過request.getRemoteAddr()獲取客戶端的IP地址是客戶端 的代理伺服器的地址,並不是客戶端的真實地址,
3、如果客戶端使用的是多層代理的話,伺服器獲得的客戶端地址是客戶端的最外圍代理伺服器的地址如果伺服器如果採用反向代理伺服器,不管客戶端採用的是何種方式訪問伺服器。
獲得客戶端真實IP地址的方法一:
public String getRemortIP(HttpServletRequest request) {
if (request.getHeader("x-forwarded-for") == null) {
return request.getRemoteAddr();
}
return request.getHeader("x-forwarded-for");

如何才能徹底禁止使用者修改IP地址?

嚴重同意LS滴要徹底禁止修改IP只能鎖定登錄檔,不過負面影響就是可能有時候自己忘了恢復登錄檔許可權就安裝軟體可能會出現安裝失敗
組策略里可以設定不能修改網路配置的選項的,只要不是很懂電腦的人一般都不會知道在哪裡去修改這個選項的,你可以試一試看的

ADSL使用者如何獲取固定IP地址攻略

然後輸入「ipconfig」,顯示出來的「IP Address」就是你的本機IP地址。 如果是98剛點「開始」→執行→輸入「winipcfg」就可以看到本地IP了。 第二步把這個獲取的ip有意識地變為自己的固定ip,比如說你剛才ip為61.1.2.245,網路自動配製ip的模式為從255到0,第一個上網人為61.1.2.255,第二個為61.1.2.254,第三個就是61.1.2.153,經此類推,越小號(最後一位)用的機會也越少,這也是你配製固定IP的好機會,比如你選用了29,那你的ip就是61.1.2.29。以上61.1.2.*是個例子,不是你要配製的,你要看清楚。 第三步是獲取閘道器,還拿上面例子說明,你的閘道器為61.1.2.1,即把最後一位變成1就可以了。 第四步你要登陸你所在電信部門你網站來獲取dns,找到後你記下網址,關掉你的貓,再次登陸你剛才記下的網站,這時機器會在下面的登陸資訊框中顯示你要登陸網站的ip地址,比如為61.1.2.3,前兩位對我們的用途太大了,這樣你獲取的dns就是61.1.1.4和61.1.2.5,這是固定格式,你要記清楚,1.42.5是不變的。如果你無法找到當面地電信部門的網站,那麼你就找當地的 *** 網,不會吧,又找不見,忘了說了,是在找地市級的行政網,這下找到了,關掉貓,記下來大功告成。 第五步在本機上設定,你可以在網路臨居上上擊右鏈,然後找到你要配製的那個網路卡,有許多機子是雙網路卡,在相應欄中填上你剛才獲取的資訊,在啟用DNS時要填主機名,你可填上我的網名linzhongzi,也可以填上你的網名,想填什麼就填什麼,域這一項就不要填了。

⑷ 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

第一種:獲取本機的IP

Enumeration<NetworkInterface> netInterfaces = null;
try {
netInterfaces = NetworkInterface.getNetworkInterfaces();
while (netInterfaces.hasMoreElements()) {
NetworkInterface ni = netInterfaces.nextElement();
System.out.println("DisplayName:" + ni.getDisplayName());
System.out.println("Name:" + ni.getName());
Enumeration<InetAddress> ips = ni.getInetAddresses();
while (ips.hasMoreElements()) {
System.out.println("IP:" + ips.nextElement().getHostAddress());
ipTemp= ni.getInetAddresses().nextElement().getHostAddress();
if(ipTemp!="127.0.0.1" && !"127.0.0.1".equals(ipTemp))
{
ip=ipTemp;
}
}
}
}catch(Exception ee)
{
ee.printStackTrace();
}

第二種:也是本機的:
InetAddress addr = InetAddress.getLocalHost();
ip=addr.getHostAddress().toString();//獲得本機IP

⑹ java如何獲取當前登錄ip

第一種:獲取本機的IP
Enumeration<NetworkInterface>
netInterfaces
=
null;
try
{
netInterfaces
=
NetworkInterface.getNetworkInterfaces();
while
(netInterfaces.hasMoreElements())
{
NetworkInterface
ni
=
netInterfaces.nextElement();
System.out.println("DisplayName:"
+
ni.getDisplayName());
System.out.println("Name:"
+
ni.getName());
Enumeration<InetAddress>
ips
=
ni.getInetAddresses();
while
(ips.hasMoreElements())
{
System.out.println("IP:"
+
ips.nextElement().getHostAddress());
ipTemp=
ni.getInetAddresses().nextElement().getHostAddress();
if(ipTemp!="127.0.0.1"
&&
!"127.0.0.1".equals(ipTemp))
{
ip=ipTemp;
}
}
}
}catch(Exception
ee)
{
ee.printStackTrace();
}
第二種:也是本機的:
InetAddress
addr
=
InetAddress.getLocalHost();
ip=addr.getHostAddress().toString();//獲得本機IP

⑺ 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相關的資料

熱點內容
python以詞為單位導出詞表 瀏覽:779
伺服器ip是干什麼的 瀏覽:689
退出線程linux 瀏覽:718
宏在編譯連接和運行時沒有符號 瀏覽:266
普元編譯的時候總是自己關閉 瀏覽:708
ip清除命令 瀏覽:815
電氣工程師需要學會哪種編程 瀏覽:786
下載的電影如何解壓 瀏覽:868
c編程中輸出寬度 瀏覽:655
工廠設置文件夾 瀏覽:356
curl命令post請求 瀏覽:749
java拼接html 瀏覽:223
ug8拆分體命令在哪裡 瀏覽:832
硬碟系統怎麼解壓 瀏覽:224
印度高級洗發按摩解壓 瀏覽:941
不加密的pdf 瀏覽:415
剪映app畫中畫怎麼使用 瀏覽:394
打開app怎麼會閃退 瀏覽:932
復制操作的命令 瀏覽:62
看電影解壓是真的嗎 瀏覽:1000