benphelps Posted May 16, 2009 Share Posted May 16, 2009 I need to get the IP of the connected client. They connect to a socket via web browser. Here is how I make the socket: $mysock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if(@socket_bind($mysock, $config['address'], $config['port'])){ // win? } else { echo 'Error binding to address: '.$config['address'].':'.$config['port']."\r\n"; passthru('pause'); die(); } This is created on a windows machine if that makes any difference. I can't seem to find a way to do this. Quote Link to comment Share on other sites More sharing options...
gregor171 Posted May 16, 2009 Share Posted May 16, 2009 I think that web server is connecting to a socket. U might use server IP for that. For client Ip, you could use this. function client_ip(){ // true client ip if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet { return $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy { return $_SERVER['HTTP_X_FORWARDED_FOR']; } else { return $_SERVER['REMOTE_ADDR']; } } Quote Link to comment Share on other sites More sharing options...
benphelps Posted May 16, 2009 Author Share Posted May 16, 2009 Thats not going to work. I think it is because it requires the web server PHP was built on to send the IP to PHP. I this case, the web server is PHP. Quote Link to comment Share on other sites More sharing options...
benphelps Posted May 16, 2009 Author Share Posted May 16, 2009 socket_getpeername($client_accept, $remote_ip, $remote_port); This did the trick. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.