Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to get the client's IP #10

Open
seggyn opened this issue Aug 26, 2020 · 4 comments
Open

How to get the client's IP #10

seggyn opened this issue Aug 26, 2020 · 4 comments

Comments

@seggyn
Copy link

seggyn commented Aug 26, 2020

I tried to add RKA\Middleware\IpAddress and get the client's IP, but it doesn't work.
$_SERVER['REMOTE_ADDR'] also doesn't work. How to fix this?

@gotzmann
Copy link
Owner

Comet always stays in memory and do not work nor changes GLOBALS and SERVER arrays from request to request. So you should use some workaround like this Workerman method to get real IP:

https://github.com/walkor/workerman-manual/blob/master/english/src/worker-development/get-remote-ip.md

Thanks for great question, we should implement more straightforward way to get that info.

@unixhostpro
Copy link

    // Main Loop
    $worker->onMessage = static function($connection, WorkermanRequest $request)
    {
        try {
            $_SERVER['REMOTE_ADDR'] = $connection->getRemoteIp();

Add please.
$connection object is not available in $app container.

@gotzmann
Copy link
Owner

gotzmann commented Jan 28, 2021

As of latest Comet v1.1.2 you can get the client's IP address from REMOTE_ADDR attribute of ServerParams:

$params = $request->getServerParams();
$remote_ip = $params['REMOTE_ADDR'];

@ghost
Copy link

ghost commented Nov 5, 2021

Привет!

У меня тоже проблема получить IP адрес юзера $request->getServerParams(); возвращает другой набор переменных.

array ( 'SHELL' => '/bin/bash', 'PWD' => '/home/u_dev/app', 'LOGNAME' => 'u_dev', 'XDG_SESSION_TYPE' => 'tty', 'MOTD_SHOWN' => 'pam', 'HOME' => '/home/u_dev', 'LANG' => 'en_US.UTF-8', 'LS_COLORS' => 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'SSH_CONNECTION' => '80.100.180.120 1029 50.190.10.100 22', 'LESSCLOSE' => '/usr/bin/lesspipe %s %s', 'XDG_SESSION_CLASS' => 'user', 'TERM' => 'xterm-256color', 'LESSOPEN' => '| /usr/bin/lesspipe %s', 'USER' => 'u_dev-demort', 'SHLVL' => '1', 'XDG_SESSION_ID' => '1669574', 'XDG_RUNTIME_DIR' => '/run/user/1001', 'SSH_CLIENT' => '80.100.180.120 1029 22', 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'DBUS_SESSION_BUS_ADDRESS' => 'unix:path=/run/user/1001/bus', 'SSH_TTY' => '/dev/pts/1', 'OLDPWD' => '/home/u_dev, '_' => '/usr/bin/php', 'PHP_SELF' => 'app.php', 'SCRIPT_NAME' => 'app.php', 'SCRIPT_FILENAME' => 'app.php', 'PATH_TRANSLATED' => 'app.php', 'DOCUMENT_ROOT' => '', 'REQUEST_TIME_FLOAT' => 1636104784.513857, 'REQUEST_TIME' => 1636104784, 'argv' => array ( 0 => 'app.php', 1 => 'start', ), 'argc' => 2, )

SSH_CLIENT - В принципе отдает IP но не чистый на край конечно его можно использовать но меня смутило что в твоем примере есть даже переменная REMOTE_ADDR
Работает через Nginx по документации сделал

`http {

upstream app {
    server http://path.to.your.app:port;
}

server {
    listen 80;
     location / {
        proxy_pass         http://app;
        proxy_redirect     off;
    }
}

}`

@gotzmann gotzmann reopened this Jan 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants