实例288:利用IP地址查找主机所在地
这是一个字符串匹配查找的实例
实例位置:光盘\mingrisoft\10\288
实例说明
PHP项目开发过程中,可以通过变量$REMOTE_ADDR获取客户机的IP地址,但并不能判断该IP所在地。为了解决上述问题,可以先将该IP转换成其对应的数字,然后根据该数值查找IP所在地。
运行本实例,如图10.26所示,首先输入要查找的IP地址,单击“转换”按钮后,会在下面的文本框中显示对应的数字。
![]() |
| 图10.26 利用IP地址查找主机所在地 |
技术要点
实现本实例,首先需要验证输入的IP地址是否合法,如果合法,再将其转换为对应的数值。验证IP地址是否合法可以通过正则表达式实现。
IP地址使用4位地址定位设备,它采用点分十进制数的格式“xxx.xxx.xxx.xxx”,例如192.168.1.66。因此,验证IP地址是否合法的正则表达式如下:
/(\d+).(\d+).(\d+).(\d+)/
将IP地址转换为对应的数值可以应用以下公式实现:
P1*255*255*255+P2*255*255+P3*255+P4*1
在上面的公式中,P1代表IP地址第1段的数值,P2代表IP地址第2段的数值,P3代表IP地址第3段的数值,P4代表IP地址第4段的数值。
实现过程
(1)编写将IP地址转换为对应数值的JavaScript自定义函数convert(),该函数只有一个参数ip,用于指定IP地址,返回值为IP地址对应的数值。代码如下:
<script language="javascript"> |
<script language="javascript"> |
<input name="Button" type="button" class="btn_grey" onClick="deal(form1)" |
举一反三
根据本实例,读者可以:
用于限制指定范围内的IP地址投票页面中。
实现获取访问者IP所属地。
| 回书目 上一节 下一节 |