国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JavaWeb 獲取客戶端的真實(shí)IP地址

這篇具有很好參考價值的文章主要介紹了JavaWeb 獲取客戶端的真實(shí)IP地址。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

通常我們在JavaWeb中獲取客戶端IP地址只需要使用request.getRemoteAddr();方法即可

如果前端使用了Nginx等反向代理的話,我們使用request.getRemoteAddr();方法獲取到的IP地址就是127.0.0.1

因?yàn)榻?jīng)過代理以后,在客戶端和服務(wù)器之間增加了中間層,因此服務(wù)器無法直接拿到客戶端的 IP

但是在轉(zhuǎn)發(fā)請求的HTTP頭信息中,增加了X-FORWARDED-FOR信息。用以跟蹤原有的客戶端IP地址和原來客戶端請求的服務(wù)器地址

所以我們可以使用以下方法來獲取客戶端的真實(shí)IP地址

public String getIpAddr(HttpServletRequest request) {
        //獲取請求頭"x-forwarded-for"對應(yīng)的value
        String ip = request.getHeader("x-forwarded-for");
        //如果獲取的ip值為空
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            //則獲取請求頭"Proxy-Client-IP"對應(yīng)的value
            ip = request.getHeader("Proxy-Client-IP");
        }
        //如果獲取的ip值仍為空
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            //則獲取請求頭"WL-Proxy-Client-IP"對應(yīng)的value
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        //如果以上方式獲取的ip值都為空
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            //則直接獲取ip地址
            ip = request.getRemoteAddr();
        }
        //返回ip地址
        return ip;
    }

但是如果使用了多級反向代理的話,X-Forwarded-For的值并不止一個,而是一串IP值

此時X-Forwarded-For中第一個非unknown的有效IP字符串即為用戶真實(shí)IP地址文章來源地址http://www.zghlxwxcb.cn/news/detail-550056.html

到了這里,關(guān)于JavaWeb 獲取客戶端的真實(shí)IP地址的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Docker部署Nginx,無法獲取客戶端真實(shí)ip地址

    Docker部署Nginx,無法獲取客戶端真實(shí)ip地址

    在部署docker版本nginx進(jìn)行請求轉(zhuǎn)發(fā),意外發(fā)現(xiàn)nginx打印日志中的客戶端ip并非為客戶端的真實(shí)ip(221.237.xxx.xxx),而是docker虛擬網(wǎng)卡的ip(172.17.0.1) 開始猜測是nginx配置問題,對比其他環(huán)境,發(fā)現(xiàn)配置相同,但其他環(huán)境未出現(xiàn)此情況 通過查詢資料,推測是docker網(wǎng)橋和linux防火墻存在

    2023年04月21日
    瀏覽(25)
  • nginx配置獲取客戶端的真實(shí)ip

    場景描述: 訪問路徑: A機(jī)器 - B機(jī)器的 -C虛擬機(jī) : A機(jī)器為客戶端用戶,本地地址為 192.168.0.110 B機(jī)器為服務(wù)端反向代理服務(wù)器 本地地址為192.168.0.128 –(192.168.56.1) C機(jī)器為B主機(jī)安裝的linux虛擬機(jī),并安裝了nginx ,本地ip為**(192.168.56.10)** 從側(cè)面反映了反向代理的好處,直

    2024年02月05日
    瀏覽(24)
  • kubernetes獲取客戶端真實(shí)ip

    kubernetes獲取客戶端真實(shí)ip

    大部分的業(yè)務(wù)場景都需要獲取客戶端的ip來審計(jì)或采取措施,文章從nodeport暴露方式獲取真實(shí)ip到ingress-nginx獲取真實(shí)ip 初學(xué)者用k8s創(chuàng)建時暴露方式一般采用nodeport,這樣方式暴露導(dǎo)致應(yīng)用負(fù)載和訪問者并不是同一段網(wǎng)絡(luò),當(dāng)web服務(wù)獲取客戶端ip的時候會發(fā)現(xiàn)獲取到的ip是k8s網(wǎng)關(guān)的

    2024年02月01日
    瀏覽(21)
  • 獲取客戶端真實(shí)IP的方法

    獲取客戶端真實(shí)IP的方法

    獲取請求的IP很簡單,可以直接使用request.getRemoteAddr()直接獲取。但由于請求在轉(zhuǎn)發(fā)到接口前,會經(jīng)過大量的反向代理,例如流程圖中,至少要經(jīng)過Nginx后,請求才會轉(zhuǎn)發(fā)到接口,因此需要對請求接口的IP做處理,提取客戶端真實(shí)IP地址。 配置Nginx的配置文件,需要反向代理服務(wù)

    2024年02月16日
    瀏覽(22)
  • nginx 獲取客戶端真實(shí)IP

    網(wǎng)站接入Web應(yīng)用防火墻WAF(Web Application Firewall)后,訪問請求在到達(dá)源站服務(wù)器之前,需要經(jīng)過WAF的代理轉(zhuǎn)發(fā)。這種情況下,源站服務(wù)器可以通過解析回源請求中的X-Forwarded-For記錄,獲取客戶端的真實(shí)IP。 WAF在將客戶端的訪問請求轉(zhuǎn)發(fā)到下一環(huán)節(jié)的服務(wù)器時,會在HTTP的請求頭

    2023年04月09日
    瀏覽(35)
  • nginx獲取客戶端真實(shí)ip

    在nginx中獲取客戶端真實(shí)IP的方法有多種,以下是其中兩種常用的方法: 使用nginx的access_log模塊記錄請求日志,并在日志中包含客戶端的真實(shí)IP信息。例如: 在上述配置中,通過使用http_x_forwarded_for字段來獲取客戶端的真實(shí)IP地址。如果該字段不存在或不合法,則使用remote_ad

    2024年02月16日
    瀏覽(49)
  • Nginx(二十) 獲取真實(shí)客戶端IP

    ????????客戶端在訪問互聯(lián)網(wǎng)應(yīng)用服務(wù)器時,與真實(shí)的應(yīng)用服務(wù)器之間會因?yàn)橛卸鄬臃聪虼?,而?dǎo)致真實(shí)應(yīng)用服務(wù)器獲取的僅是最近一層的反向代理服務(wù)器 IP。為使 Nginx 后端的上游服務(wù)器可以獲得真實(shí)客戶端 IP,Nginx 提供了 ngx_http_realip_module 模塊用以實(shí)現(xiàn)真實(shí)客戶端

    2024年01月16日
    瀏覽(31)
  • nginx如何獲取真實(shí)客戶端ip

    nginx作為反向代理服務(wù)器,即代理我們的服務(wù)端,下面介紹下如何配置nginx獲取真實(shí)的客戶端ip 1、配置nginx.con 2、在java程序中可以通過如下方式獲?。?這樣就可以打印出真實(shí)ip了!即request.getHeader(\\\"X-Real-IP\\\")的值 引用: 查看端口占用及釋放所占用的端口_查詢谷歌瀏覽器的端口

    2024年02月11日
    瀏覽(17)
  • k8s ingress獲取客戶端客戶端真實(shí)IP

    k8s ingress獲取客戶端客戶端真實(shí)IP

    在Kubernetes中,獲取客戶端真實(shí)IP地址是一個常見需求。這是因?yàn)樵谪?fù)載均衡架構(gòu)中,原始請求的源IP地址會被替換成負(fù)載均衡器的IP地址。 獲取客戶端真實(shí)IP的需求背景包括以下幾點(diǎn): 安全性:基于客戶端IP進(jìn)行訪問控制和認(rèn)證授權(quán)可以提高系統(tǒng)安全性。 日志記錄與審計(jì):記

    2024年02月13日
    瀏覽(24)
  • 學(xué)習(xí)NodeJs之【如何獲取客戶端真實(shí)IP】

    學(xué)習(xí)NodeJs之【如何獲取客戶端真實(shí)IP】

    ????????產(chǎn)品想要增加一個操作日志的模塊,重點(diǎn)記錄增刪改的操作ip。 ????????這塊業(yè)務(wù)其實(shí)需要按【是否代理】來分邏輯。首次開發(fā)時,并未考慮? 測試生產(chǎn)環(huán)境有統(tǒng)一代理? ,導(dǎo)致傳統(tǒng)的獲取ip方式取到了容器網(wǎng)關(guān)ip。——顯然這樣是無法滿足產(chǎn)品想要區(qū)分操作

    2024年02月03日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包