~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...:::我应该将我的服务器应用程序绑定到哪个地址?:::...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
推荐:0.0.0.0 // 在每个可用地址绑定。
如果您知道自己在做什么,那么您应该使用路由器分配给您的机器的 ip。仅当您在本地网络之外等待数据包时才需要这样做。
否则你应该绑定在 127.0.0.1
分配给您机器的 IP 将如下所示。
例如:192.168.1.5
网络掩码:255.255.255.0 <--忽略这个
找到它,简单的方法:
您可以检索地址,$_SERVER['SERVER_ADDR']
但不应依赖它。
找到它,硬编码的方式:
在 Windows 上:键入ipconfig /all并搜索IPv4 地址条目。
在 linux 上:输入ifconfig
如果您无权访问控制台,请使用phpinfo();<-对此不确定
绑定 http://www.example.com/dir/
是错误的,它永远不会起作用。
注意:机器对外部IP(DSLAM分配给您的IP,即128.31.53.90)一无所知,主要是因为那是路由器的工作。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...:::我应该将我的服务器应用程序绑定到哪个端口?:::...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
当客户端向您发送数据时,它们首先到达您的路由器,然后由路由器决定如何处理它们。该决定基于您的路由器 NAT 表和传入端口。
NAT 表通常如下所示:
+==============================================+
| LAN IP | Incoming Port | Outgoing Port |
+============+=================+===============+
|192.168.1.5 | 8080 | 80 |
+------------+-----------------+---------------+
|192.168.1.2 | 25 | 25 |
+------------+-----------------+---------------+
让 X 成为具有以下结构的数据包:
Header Data
+===================+===============+
|-| Your External IP | ... |
|X| | ... |
|-| Destination Port | ... |
+===================+===============+
路由器将在表中查找destination port
并搜索类似的incoming port
条目,
如果找到,则将数据包重定向到匹配的 LAN IP: 传出端口
例如:
一个数据包到达目的端口 8080,它将被转发到 192.168.1.5:80。
>> 25 >> 192.168.1.2:25
因此,要捕获某人在 8080 发送的数据包,您需要在 192.168.1.5:80 绑定,
如果您在端口 25 等待数据包,则需要绑定 25。
注意:如果您正在运行网络服务器,则在端口80 上绑定将失败,因为它们默认绑定到该端口(除非您更改了它)。