เจอปัญหาครับ ลองใช้ php เช็ค ip user ดันเห็นเป็น ip เครื่อง server

[COLOR=#0000ff][B][I]+++ ล่าสุด !![/I][/B][/COLOR]

http://www.jkpopradio.com/new/sss.php

[COLOR=#333333]แก้ได้แล้วครับ สรุป [/COLOR][COLOR=#333333][COLOR=#333333][I]mod_rpaf มันเอ๋อ เลยไม่ส่งค่า ip ไปให้ apache

[/I][/COLOR][/COLOR][COLOR=#ff0000][I](สงสัย ซน ตอนหาวิธี ติดตั้ง SSL สงสัยไปทำไรมันไว้เยอะ เหอๆๆ)
[/I][/COLOR][COLOR=#333333][COLOR=#333333][I]
วิธีแก้คือ ผมลง mod_traf ใหม่หายเลย[/I][/COLOR][/COLOR]


ผมลงใหม่ ใช้งานได้ปกติ แต่ดันเพิ่งมามีปัญหาตอน ทำหน้าเว็บเช็ค ip ผู้ใช้งาน

ดันเป็น ip server ตัวเองซะงั้น

http://www.jkpopradio.com/new/sss.php

<?php
//Gets the IP address
$ip = getenv(“REMOTE_ADDR”) ;
Echo "Your IP is " . $ip;
?>

ตอนนี้ server ผมใช้ nginx + directadmin + csf

ไม่ทราบว่าจะต้องแก้ค่าอะไรเพิ่มตรงไหน

เพราะถ้าลงใหม่เหนื่อยแน่ๆ เป็น webhosting ด้วย

สงสัยเป็นตอนผมโม apache ไฟล์ httpd.conf เพิ่ม

แต่ไม่รู้เป็นที่ตรงไหน ใครเคยเจออาการแบบนี้ หรือมีวิธีแก้บ้างครับ

ขอบคุณครับ :875328cc:

ได้ลง mod_rpaf ยังครับ

/etc/httpd/conf/extra/httpd-includes.conf

โดยเพิ่มคำสั่งนี้ไว้ท้ายไฟล์ครับ

<IfModule mod_rpaf-2.0.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 27.254.46.184
RPAFheader X-Forwarded-For
</IfModule>

ทำแล้วครับ

RPAFproxy_ips 127.0.0.1 <— เป็นแบบนี้ครับ ไม่ใช่ ip เครื่อง

ต้องเป็นแบบนี้ครับ ลองดู

<IfModule mod_rpaf-2.0.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1
RPAFheader X-Forwarded-For
</IfModule>

ลองเป็น 127.0.0.1 แล้วครับ ขึ้นเหมือนเดิม

http://www.jkpopradio.com/new/sss.php

ต้องให้ nginx FWD client IP ไปให้ apache ด้วยนะครับ
ไม่ก็แก้ไขวิธี check IP นิดหน่อย เลือกเอาละกันครับ …

proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

<?
if (getenv(HTTP_CLIENT_IP)) {
$ip = getenv(HTTP_CLIENT_IP);
} elseif (getenv(HTTP_X_FORWARDED_FOR)) {
$ip = getenv(HTTP_X_FORWARDED_FOR);
} else {
$ip = getenv(REMOTE_ADDR);
}

echo “IP : $ip
”;
?>

http://www.jkpopradio.com/new/sss.php

น่าจะติดตรงที่ nginx จริงๆ ด้วยครับผม

[COLOR=#333333]proxy_redirect off;[/COLOR]
[COLOR=#333333]proxy_set_header Host $host;[/COLOR]
[COLOR=#333333]proxy_set_header X-Real-IP $remote_addr;[/COLOR]
[COLOR=#333333]proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

อันนี้ผมใส่ไว้แต่แรกแล้วครับ งง เลย มันก็ยังเห็นเป็น ip เครื่องตัวเอง

ผมลองเอา stop nginx จะขึ้น ip ของ user ครับ

[/COLOR]

มันโหลด module ไม่มาหรือเปล่า

ลองเชค info หรือยัง

เด๋วลองลง nginx ดูอีกที

ถ้าไม่ได้ เด๋วสงสัยผมได้ลง เครื่องใหม่

ขอบคุณมากครับทุกท่าน :th_113_:

ทำไมต้องลงเครื่องใหม่ งง

แค่ไล่สคริปให้ดี

ลง rpaf ยังน่ะครับ? ไม่ใช่คอนฟิก 5-6 บรรทัดนั้นนะครับ หมายถึง compile + install mod_rpaf เลยน่ะครับ

วิธีเช็คคือลองเอาบรรทัด <IfModule mod_rpaf-2.0.c> กับ </IfModule> ออกครับ ถ้ามันพังล่ะก็แปลว่ายังไม่ได้ลงโมดูล

สงสัยยังไม่ได้ลง mod_rpaf ไม่ก็ compile error

http://www.jkpopradio.com/new/sss.php

แก้ได้แล้วครับ สรุป [COLOR=#333333][I]mod_rpaf มันเอ๋อ เลยไม่ส่งค่า ip ไปให้ apache

[/I][/COLOR][COLOR=#ff0000][I](สงสัย ซน ตอนหาวิธี ติดตั้ง SSL สงสัยไปทำไรมันไว้เยอะ เหอๆๆ)
[/I][/COLOR][COLOR=#333333][I]
วิธีแก้คือ ผมลง mod_traf ใหม่หายเลย [/I][/COLOR]:d16c4689:

น่าจะลงเครื่องใหม่ :70bff581: