易截截图软件、单文件、免安装、纯绿色、仅160KB

iptables + php 上网计费实现

最近有一个香港的酒店提出需求,要到酒店业内的商务中心实行计费上网, 提供了如下技术方案:
1、设一台CENTOS5的机器做为路由,把需要计费的机器都设为用此服务器做网关。
2、服务器开启IPTABLE,通过IPTABLE控制能不能使用互联网。
记录下以下技术要点:
一、 php可以通过shell_exec来执行shell指令,但iptables的指令是root才有权限执行的,所在需要借助sudo.
具体做法如下:
1. 执行visudo, 注释掉 Default requiretty 一行
2. 在文件最后,加入apache ALL = NOPASSWD: /sbin/iptables
3. 用php  shell_exec("/usr/bin/sudo /sbin/iptables -I FORWARD -s  xxx.xxx.xxx.xxx  -j DROP")实现断网
4. 用php  shell_exec("/usr/bin/sudo /sbin/iptables -I FORWARD -s  xxx.xxx.xxx.xxx  -j ACCEPT")实现开通
二、CENTOS开启路由功能:
1、nano /etc/sysctl.conf,找到其中net.ipv4.ip_forward,设为1,保存后退出。
2、sysctl -p /etc/sysctl.conf让修改生效。
三、/etc/sysconfig/iptables内容:
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i eth0 -j ACCEPT
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -d 224.0.0.251 --dport 5353 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 1404 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 80 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 10000 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
*n


相关文档:

如何通过PHP将excel的数据导入MySQL中

  如何通过PHP将excel的数据导入MySQL中
    在开发PHP程序时,很多时候我们会有将数据批量导入数据库的需求,如学生信息批量添加到数据库中,而事先用excel编排好,对excel实行操作,便是我们比较常用的选择方式。
     在对excel的操作中,phpExcelReade便是很多人的共同 ......

php点击下载txt文件

由于现在的浏览器已经可以识别格式为txt的文档格式,所以如果只是给txt文档做一个文字链接的话,可能只是打开一个新窗口显示txt文件的内容,并不能实现点击下载的目的。We have to do something else.
    当然这个问题的解决办法也可以是你将你的txt文件改名为浏览器不认识的文件,比如rar,这样的话点击, ......

使用CodeIgniter框架快速开发PHP应用(一)

对 CodeIgniter 的介绍
大多数PHPer都想写出运行状态良好的应用程序,而且希望尽可能做得简单且不费事。这篇文章是有关 CodeIgniter的(以后简称CI),CI是一个达成上面目的的所谓框架。
如果你只是要达成一个最终的结果,而把中间所有的编码细节和复杂统统丢给一个框架,CI是你最好的朋友。
CI有很多优点:免费, 轻量级, ......

PHP string

<?php
$s = "new string";
//下面双引号字符串中的符号"$"未做转义,因此$s将被替换成其变量的值
$str_1 = "双引号指定的字符串,$s";
//下面双引号字符串中的符号"$"做了转义,因此$s原封不动,不会被替换为变量$s的值
$str_2 = "双引号指定的字符串,\$s";
//单引号字符串中的"$"不用做转义即可原样输出
$str_3 ......

PHP 类 的使用

用户定义的类,也是学好 PHP 所必备的条件之一。而 PHP 的类,和其它的面向对象语言比较起来,还算蛮单纯的。PHP 只有类别 (class)、方法 (method)、属性、以及单一继承 (extensions) 等。对不习惯使用 C++、Java、Delphi 等面向对象语言来开发程序的用户,不妨先阅读一下有关面向对象概念的书,相信可以带来许多的收获。
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号