首先,在前端nginx上需要做如下配置:
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到東陽(yáng)網(wǎng)站設(shè)計(jì)與東陽(yáng)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋東陽(yáng)地區(qū)。
location /
proxy_set_hearder host $host;
proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header X-real-ip $remote_addr;
};
nginx會(huì)在把請(qǐng)求轉(zhuǎn)向后臺(tái)real-server前把http報(bào)頭中的ip地址進(jìn)行替換;這樣操作完成后,real-server也需要做一些操作;
public class ClientIPUtils {
/**
* 在很多應(yīng)用下都可能有需要將用戶的真實(shí)IP記錄下來(lái),這時(shí)就要獲得用戶的真實(shí)IP地址,在JSP里,獲取客戶端的IP地
* 址的方法是:request.getRemoteAddr(),這種方法在大部分情況下都是有效的。但是在通過(guò)了Apache,Squid等
* 反向代理軟件就不能獲取到客戶端的真實(shí)IP地址了。
* 但是在轉(zhuǎn)發(fā)請(qǐng)求的HTTP頭信息中,增加了X-FORWARDED-FOR信息。用以跟蹤原有的客戶端IP地址和原來(lái)客戶端請(qǐng)求的服務(wù)器地址。
* @param request
* @return
*/
public static String getClientIp(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
//String ip = request.getHeader("X-real-ip");
logger.debug("x-forwarded-for = {}", ip);
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
logger.debug("Proxy-Client-IP = {}", ip);
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
logger.debug("WL-Proxy-Client-IP = {}", ip);
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
logger.debug("RemoteAddr-IP = {}", ip);
}
if(StringUtils.isNotBlank(ip)) {
ip = ip.split(",")[0];
}
return ip;
}
}
您好,.X.XXX.XXX系列IP,而這個(gè)函數(shù)獲取的是局域網(wǎng)網(wǎng)關(guān)出口的IP地址,如果訪問(wèn)者使用代理服務(wù)器,將不獲取代理服務(wù)器的IP,而是獲取訪問(wèn)者網(wǎng)關(guān)的真實(shí)IP。如果將這個(gè)函數(shù)應(yīng)用到限IP訪問(wèn)的網(wǎng)頁(yè)中,別人即使通過(guò)限IP訪問(wèn)段中的代理服務(wù)器,也不能訪問(wèn)該頁(yè)面。
下面提供一個(gè)函數(shù):?php
// 定義一個(gè)函數(shù)getIP()
function getIP(){global $ip;
if (getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP");
else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if(getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");else$ip = "Unknow";
return $ip;}
// 使用方法:
echo getIP();?
getenv("REMOTE_ADDR")用來(lái)取得客戶端的 IP 地址,但如果客戶端是使用代理服務(wù)器來(lái)訪問(wèn),那取到的就是代理服務(wù)器的 IP 地址,而不是真正的客戶端 IP 地址。要想透過(guò)代理服務(wù)器取得客戶端的真實(shí) IP 地址,就要使用 getenv("HTTP_X_FORWARDED_FOR") 來(lái)讀取。
但是如果客戶端沒(méi)有通過(guò)代理服務(wù)器來(lái)訪問(wèn),那么用getenv("HTTP_X_FORWARDED_FOR") 取到的值將是空的。
else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
表示如果getenv("HTTP_X_FORWARDED_FOR") 取到的值存在不為空(即客戶端使用代理服務(wù)器的情況下),則變量$ip等于getenv("HTTP_X_FORWARDED_FOR") 取到的真實(shí)IP值。
如果上面的else if(getenv("HTTP_X_FORWARDED_FOR"))取得的值為空(即沒(méi)有使用代理服務(wù)器),則不會(huì)執(zhí)行下面的$ip = getenv("HTTP_X_FORWARDED_FOR");這一行語(yǔ)句。
這種情況下已經(jīng)確認(rèn)客戶端沒(méi)有使用代理服務(wù)器,從而通過(guò)
else if(getenv("REMOTE_ADDR"))
這兩行語(yǔ)句獲得客戶端的IP地址也是真實(shí)的IP地址。
在服務(wù)器中要查看端口,可以使用Netstat命令:
1、依次點(diǎn)擊“開(kāi)始→運(yùn)行”,鍵入“cmd”并回車(chē),打開(kāi)命令提示符窗口。
2、在命令提示符狀態(tài)下鍵入“netstat -a -n”,按下回車(chē)鍵后就可以看到以數(shù)字形式顯示的TCP和UDP連接的端口號(hào)及狀態(tài)。
Netstat命令用法如下:
命令格式:Netstat -a -e -n -o -s-an
-a 表示顯示所有活動(dòng)的TCP連接以及計(jì)算機(jī)監(jiān)聽(tīng)的TCP和UDP端口。
-e 表示顯示以太網(wǎng)發(fā)送和接收的字節(jié)數(shù)、數(shù)據(jù)包數(shù)等。
-n 表示只以數(shù)字形式顯示所有活動(dòng)的TCP連接的地址和端口號(hào)。
-o 表示顯示活動(dòng)的TCP連接并包括每個(gè)連接的進(jìn)程ID(PID)。
-s 表示按協(xié)議顯示各種連接的統(tǒng)計(jì)信息,包括端口號(hào)。
-an 查看所有開(kāi)放的端口
遠(yuǎn)程連接錯(cuò)誤。
1、檢查服務(wù)器的網(wǎng)絡(luò)連接情況,關(guān)閉防火墻或者安全軟件,可以讓網(wǎng)絡(luò)注冊(cè)到正常的端口上。
2、檢查jar包中的配置文件,確保jar包正確地設(shè)置了遠(yuǎn)程連接的IP地址和端口號(hào),且運(yùn)行正確的程序。
3、檢查jar包的各個(gè)組件,確保它們能夠正常工作,如數(shù)據(jù)庫(kù)、緩存、網(wǎng)絡(luò)等組件。
4、可以重新部署jar包,確保jar包能夠正常運(yùn)行。
分享題目:安全jar包獲取服務(wù)器ip地址 獲取jar包中的文件路徑
分享地址:http://sd-ha.com/article28/doggccp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、網(wǎng)站策劃、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容