Re: How to limit source IP in PHP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/13/2012 12:55 PM, Tonix (Antonio Nati) wrote:
Il 13/09/2012 21:41, Jim Lucas ha scritto:
On 09/13/2012 12:28 PM, Tonix (Antonio Nati) wrote:

You are speaking about incoming connections, I suppose.

I'm speaking about connections started from within PHP.

Which is a response to the incoming connection.


And so? There is no relation between the call received from Apache
(which is not passed to PHP), and any connection PHP may open later.

My experience has always been, with Apache and lighttpd at least, that the response comes from the IP:PORT that the request was made to.

So, if I connect to http://10.10.10.10/

Then the response is going to come from PORT 80.

You might want to run a little trafshow on your server to see how the traffic behaves. I have a number of web servers that I run, all with either apache or lighttpd, and they all behave this way.

Here is the output of my http request from my office to my server:

From Address             To Address               Pro    Bytes CPS
======================================================================
66.39.178.2..58479       66.39.167.51..80         tcp      725 12
66.39.167.51..80         66.39.178.2..58479       tcp     2720
66.39.178.2..52515       66.39.167.51..80         tcp     1303
66.39.178.2..54506       66.39.167.51..80         tcp      696
66.39.178.2..62658       66.39.167.51..80         tcp      700
66.39.178.2..65382       66.39.167.51..80         tcp      700
66.39.167.51..80         66.39.178.2..52515       tcp      545
66.39.178.2..50794       66.39.167.51..80         tcp      700
66.39.178.2..65015       66.39.167.51..80         tcp      711
66.39.167.51..80         66.39.178.2..54506       tcp      305
66.39.167.51..80         66.39.178.2..62658       tcp      305
66.39.167.51..80         66.39.178.2..65382       tcp      357
66.39.167.51..80         66.39.178.2..50794       tcp      357
66.39.167.51..80         66.39.178.2..65015       tcp      357

This is running Apache.



Unless you are talking about PHP being ran from cron or the CLI.

if you are talking about YOU running a PHP script as a daemon, then
yes, you have the ability to BIND to an IP address. I do this in a few
scripts/daemons of mine. I use the stream_* functions for this.

But, if you are talking about calling fopen() from the CLI and have it
"bind" to a specific IP when connecting out, that is more of a OS
specific option. You will need to find out how to run a php script and
have it "bind" to a given IP (or interface) when it connects to the WWW.


When apache starts a php script, the script can open a socket towards
another end-point, asking to bind to any local address as source address.

But this is a secondary connection (that you open in process) and has nothing to do with the request connection to the server from the client.


Period.

Regards,

Tonino



--
Jim Lucas

http://www.cmsws.com/
http://www.cmsws.com/examples/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux