日韩一区,国产二区,欧美三区,日本大片在线看黄a∨免费,欧美人体做爰大胆视频,欧洲美女黑人粗性暴交视频,日,韩,欧美一区二区三区

首頁>文檔>高防IP>高防IP設置防護HTTP/TCP協(xié)議獲取用戶真實IP

需要支持?

如果通過文檔沒辦法解決您的問題,請?zhí)峤还潍@取我們的支持!

高防IP設置防護HTTP/TCP協(xié)議獲取用戶真實IP

1.速度網絡高防產品使用proxy protocol(簡稱PP協(xié)議)來傳遞用戶真實IP。當前高防IP使用的為proxy_protocol 的V1版本。

2.設置proxy protocol 開啟。

高防IP設置防護HTTP/TCP協(xié)議獲取用戶真實IP插圖

3.HTTP協(xié)議如何通過非網站防護 獲取客戶端真實IP?
以Nginx為例:

// 如果您的源服務器nginx為直接的源,不再反向代理到其他的上游,則$proxy_protocol_addr變量即為真實用戶的IP。可通過修改Nginx日志格式,在access.log日志查看。也可直接打印請求頭。參考下圖1
server {
 listen 8443 proxy_protocol("**請在您的源服務器的端口處添加 'proxy_protocol' ");
 ....(其他配置省略)
}
//如您的源服務器Nginx轉發(fā)請求到其他上游
server {
 listen 8443 proxy_protocol("請在您的源服務器的端口處添加 'proxy_protocol' ");
 proxy_set_header X-PP-RealIp $proxy_protocol_addr;//您可通過該語法,將用戶真實IP,定義為任意字段(本例為X-PP-RealIp),轉發(fā)給上游,結果請見圖2
 location / {
     proxy_pass http://backend.example2.com:8088;
     ......(省略配置)
 }
}

圖1
高防IP設置防護HTTP/TCP協(xié)議獲取用戶真實IP插圖1
高防IP設置防護HTTP/TCP協(xié)議獲取用戶真實IP插圖2
圖2
高防IP設置防護HTTP/TCP協(xié)議獲取用戶真實IP插圖3

4.TCP服務如何獲取用戶的真實IP

  1. 在三次握手后,數(shù)據(jù)接收階段獲取的報文中.會首先收到一個字符串,如(“PROXY TCP4 119.188.212.127 123.129.229.123 41774 8082”)。
    其中以空格為分隔符,119.188.212.127 為客戶端的真實IP,123.129.229.123 為高防IP,8082 為端口。
  2. 實現(xiàn)代碼
php
//創(chuàng)建Server對象,監(jiān)聽 127.0.0.1:9501 端口
$server = new Swoole\Server("0.0.0.0", 8082);
//監(jiān)聽連接進入事件
$server->on("Connect", function ($server, $fd) {
echo "Client: Connect.\n";
});
//監(jiān)聽數(shù)據(jù)接收事件
$server->on("Receive", function ($server, $fd, $from_id, $data) {
$fd_info = $server->getClientInfo($fd);
//var_dump($fd_info);
var_dump($data);
$is_proxy = substr($data,0,5);
if($is_proxy == "PROXY"){
$proxy_arr = explode(" ",$data);
echo "真實ip:".$proxy_arr[2]."\n";
echo "高防ip:".$proxy_arr[3]."\n";
}
$server->send($fd, "Server: " . $data);
});
//監(jiān)聽連接關閉事件
$server->on("Close", function ($server, $fd) {
echo "Client: Close.\n";
});
//啟動服務器
$server->start();
?>

高防IP設置防護HTTP/TCP協(xié)議獲取用戶真實IP插圖4

Node.js版本:

  1. 到Github下載對應的庫 https://github.com/moznion/proxy-protocol-js ,也可以npm proxy-protocol-js。
  2. 服務器解析(高防IP使用V1版本的 代理協(xié)議)
var net = require('net');
const proxyProtocol = require('proxy-protocol-js');
const PORT = 18001;
const HOST = '0.0.0.0'
var clientHandler = function(socket){
//客戶端發(fā)送數(shù)據(jù)的時候觸發(fā)data事件
socket.on('data', function dataHandler(data) {//data是客戶端發(fā)送給服務器的數(shù)據(jù)
var is_proxy = data.toString().substring(0,5);
if(is_proxy == "PROXY"){
const proto = proxyProtocol.V1ProxyProtocol.parse(data.toString());
console.log(proto);
}else{
console.log(socket.remoteAddress, socket.remotePort, 'send', data.toString());
}
//服務器向客戶端發(fā)送消息
socket.write('server received\n');
});
//當對方的連接斷開以后的事件
socket.on('close', function(){
console.log(socket.remoteAddress, socket.remotePort, 'disconnected');
})
};
//創(chuàng)建TCP服務器的實例
//傳入的參數(shù)是:監(jiān)聽函數(shù)clientHandler
var app = net.createServer(clientHandler);
app.listen(PORT, HOST);
console.log('tcp server running on tcp://', HOST, ':', PORT);
  1. 測試結果
    使用telnet 高防IP 填寫的轉發(fā)端口
    高防IP設置防護HTTP/TCP協(xié)議獲取用戶真實IP插圖5

參考文檔
https://www.cnblogs.com/zhangmingda/p/12672588.html

0 條回復 A文章作者 M管理員
    暫無討論,說說你的看法吧
QQ客服
  • QQ176363189 點擊這里給我發(fā)消息
旺旺客服
  • 速度網絡服務商 點這里給我發(fā)消息
電子郵箱
  • sudu@yunjiasu.cc
微信客服
  • suduwangluo