Re: How to find callers local IP address?
[email protected] (Micha)
| Newsgroups | php.general |
|---|---|
| Message-ID | <[email protected]> |
Indeed, it is the basic concept of a NAT that external servers only see the public IP of the router and not the private LAN IP of the client behind the NAT. An alternative of passing the local IP as URL parameter/query string, is to pass it as custom request header. Best regards, Micha Am 20.03.2022 um 23:10 schrieb Aziz Saleh: > You can not access a request's internal IP with PHP. Maybe you can > configure the switch to pass the IP as a parameter in the action URL. > > On Sun, Mar 20, 2022 at 6:03 PM Hans Åhlin <[email protected]> > wrote: > > 'SERVER_ADDR' > The IP address of the server under which the current script is > executing. > > https://www.php.net/manual/en/reserved.variables.server.php > > MvH / Hans Åhlin > > > Den sön 20 mars 2022 23:00Hans Åhlin <[email protected]> > skrev: > > 'SERVER_ADDR' > The IP address of the server under which the current script is > executing. > > https://www.php.net/manual/en/reserved.variables.server.php > > Den sön 20 mars 2022 08:46Bo Berglund <[email protected]> > skrev: > > I have a script on my website, which is used to report (by > email) state changes > in home automation power switches. > > It is done by configuring the power switch with an "action > URL" to be hit when a > switch changes state. This works well as far as the switch > state reporting goes. > > But I would like to also get the *internal LAN* IP address > of the power switch > device in my report so I can find it on the network. The > IP changes when I move > it between my locations... > > After googling a bit I have found this code snippet: > > if (!empty($_SERVER['HTTP_CLIENT_IP'])) { > $ip = $_SERVER['HTTP_CLIENT_IP']; > } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { > $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; > } else { > $ip = $_SERVER['REMOTE_ADDR']; > } > > But when I use it in my reporting I am always getting the > external Internet IP > address of my router instead of the IP of the power switch. > > How can I extract the original device's local LAN IP > address from which the call > was sent? > > > -- > Bo Berglund > Developer in Sweden >