基于IPtables的WIFI热点流量统计方法及系统与流程

文档序号:11845813阅读:197来源:国知局
本发明涉及智能终端WIFI热点
技术领域
:,尤其涉及的是一种基于IPtables的WIFI热点流量统计方法及系统。
背景技术
::随着智能终端技术的不断发展,手机、平板电脑等智能终端的使用越来越普及。这些智能终端都具有WIFI热点功能,可供其它智能终端连接WIFI热点从而上网。随时随地使用智能终端上网,已是日常生活的一部分,基于智能终端的WIFI热点流量分享可以使智能终端的流量得到充分的利用。但是现有的智能终端无法统计通过WIFI热点分享的流量,这就为WIFI热点流量分享埋下了隐患,不能即时、实时统计已分享的流量,使得分享过量,给用户造成了额外的开销。因此,现有技术还有待于改进和发展。技术实现要素:本发明要解决的技术问题在于,提供一种基于IPtables的WIFI热点流量统计方法及系统,旨在解决现有的智能终端WIFI热点不能实时统计分享的流量的问题。本发明解决技术问题所采用的技术方案如下:一种基于IPtables的WIFI热点流量统计方法,其中,包括以下步骤:A、开启智能终端的WIFI热点,在智能终端的系统用户层上配置IPtables规则的配置文件;B、检测是否有客户端连接到所述WIFI热点,若有,则获取客户端的IP地址;C、调用IPtables规则的配置文件,为获取到的所述客户端的IP地址设置IPtables规则,并根据所述IPtables规则统计所述客户端的IP地址经过所述WIFI热点发送和接收的数据量,将所述客户端发送和接收的数据量相加得到对应的流量数据;D、在所述智能终端上显示所述流量数据。所述的基于IPtables的WIFI热点流量统计方法,其中,所述步骤B具体包括:B1、每隔第一预定时间检测是否有客户端连接到所述WIFI热点,若有,则获取客户端的IP地址。所述的基于IPtables的WIFI热点流量统计方法,其中,所述步骤C具体包括:C11、对已连接所述WIFI热点的客户端IP设置所述IPtables规则,统计该客户端上经过所述WIFI热点发送和接收的数据量;C12、每隔第二预定时间执行IPtables查询信息命令,将所述客户端经过所述WIFI热点的发送量和接收量相加得到所述WIFI热点分享的流量数据。所述的基于IPtables的WIFI热点流量统计方法,其中,所述步骤C还包括:C21、当有多个客户端连接到所述WIFI热点时,根据所述IPtables规则统计每一个客户端的IP地址经过所述WIFI热点发送和接收的数据量,将每一个客户端发送和接收的数据量相加得到对应的流量数据,将所有客户端的发送量和接收量相加得到所述WIFI热点分享的流量数据。所述的基于IPtables的WIFI热点流量统计方法,其中,所述步骤D具体包括:D1、在所述智能终端上显示每一个客户端对应的流量数据及所有客户端对应的WIFI热点分享的流量数据。一种基于IPtables的WIFI热点流量统计系统,其中,包括:设置模块,用于在智能终端的系统用户层上配置IPtables规则的配置文件;连接检测模块,用于在智能终端的WIFI热点开启后,检测是否有客户端连接到所述WIFI热点,若有,则获取客户端的IP地址;流量统计模块,用于调用IPtables规则的配置文件,为获取到的所述客户端的IP地址设置IPtables规则并根据所述IPtables规则统计所述客户端的IP地址经过所述WIFI热点发送和接收的数据量,将所述客户端发送和接收的数据量相加得到对应的流量数据;显示模块,用于在所述智能终端上显示所述流量数据。所述的基于IPtables的WIFI热点流量统计系统,其中,所述连接检测模块包括:连接检测单元,用于每隔第一预定时间检测是否有客户端连接到所述WIFI热点,若有,则获取客户端的IP地址。所述的基于IPtables的WIFI热点流量统计系统,其中,所述流量统计模块包括:流量统计单元,用于对已连接所述WIFI热点的客户端IP设置所述IPtables规则,统计该客户端上经过所述WIFI热点发送和接收的数据量;流量计算单元,用于每隔第二预定时间执行IPtables查询信息命令,将所述客户端经过所述WIFI热点的发送量和接收量相加得到所述WIFI热点分享的流量数据。所述的基于IPtables的WIFI热点流量统计系统,其中,所述流量统计模块,还用于当有多个客户端连接到所述WIFI热点时,根据所述IPtables规则统计每一个客户端的IP地址经过所述WIFI热点发送和接收的数据量,将每一个客户端发送和接收的数据量相加得到对应的流量数据,将所有客户端的发送量和接收量相加得到所述WIFI热点分享的流量数据。所述的基于IPtables的WIFI热点流量统计系统,其中,所述显示模块,还用于在所述智能终端上显示每一个客户端对应的流量数据及所有客户端对应的WIFI热点分享的流量数据。本发明所提供的一种基于IPtables的WIFI热点流量统计方法及系统,有效地解决了现有的智能终端WIFI热点不能实时统计分享的流量的问题,通过在智能终端的系统用户层上配置IPtables规则的配置文件;开启智能终端的WIFI热点,检测是否有客户端连接到所述WIFI热点,若有,则获取客户端的IP地址;调用IPtables规则的配置文件,为获取到的所述客户端的IP地址设置IPtables规则,并根据所述IPtables规则统计所述客户端的IP地址经过所述WIFI热点发送和接收的数据量,将所述客户端发送和接收的数据量相加得到对应的流量数据;在所述智能终端上显示所述流量数据;使得智能终端能实时统计WIFI热点分享的流量,直观显示智能终端WIFI热点分享的流量,避免智能终端分享流量过量,以便有效进行智能终端的流量管理,给用户带来了大大的方便。附图说明图1为本发明提供的基于IPtables的WIFI热点流量统计方法较佳实施例的流程图。图2为本发明提供的基于IPtables的WIFI热点流量统计系统较佳实施例的结构框图。具体实施方式本发明提供一种基于IPtables的WIFI热点流量统计方法及系统,为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。基于Linux的Android、FirefoxOS等智能操作系统都有流量统计相关的API接口,以Android系统为例,主要包含以下三种API:1)设备总流量的统计,包含GPRS和WiFi等,例如TrafficStats.getTotalRxBytes();//总接收流量、TrafficStats.getTotalTxBytes();//总发送流量;2)设备的GPRS流量统计,例如TrafficStats.getMobileRxBytes();//不包含WiFi的手机GPRS接收量、TrafficStats.getMobileTxBytes();//不包含Wifi的手机GPRS发送量;3)某一个进程的总流量统计,例如TrafficStats.getUidRxBytes(Uid);//某一个进程的总接收量、TrafficStats.getUidTxBytes(Uid);//某一个进程的总发送量。然而这些API只能大概的统计目标设备所消耗的总流量(WIFI和GPRS)、GPRS流量或者某一个进程的总流量,并不能统计设备通过WIFI热点分享的流量,这就为WIFI热点流量分享埋下了隐患,不能即时的统计已分享的流量,使得分享过量,给用户造成了额外的开销。本发明提供的基于IPtables的WIFI热点流量统计方法,利用IPtables包过滤系统,针对基于Linux的智能终端开发了一种WIFI热点分享流量的统计方法及系统,可以实时的统计智能终端分享的流量。IPtables是Linux内核集成的IP信息包过滤系统,该包过滤系统是免费的,可以代替昂贵的商业防火墙解决方案,完成包过滤、封包重定向和网络地址转换等功能。请参阅图1,图1为本发明提供的基于IPtables的WIFI热点流量统计方法较佳实施例的流程图,如图所示,所述方法包括以下步骤:步骤S100、开启智能终端的WIFI热点,在智能终端的系统用户层上配置IPtables规则的配置文件;;步骤S200、检测是否有客户端连接到所述WIFI热点,若有,则获取客户端的IP地址;步骤S300、调用IPtables规则的配置文件,为获取到的所述客户端的IP地址设置IPtables规则,并根据所述IPtables规则统计所述客户端的IP地址经过所述WIFI热点发送和接收的数据量,将所述客户端发送和接收的数据量相加得到对应的流量数据;步骤S400、在所述智能终端上显示所述流量数据。下面结合具体的实施例对上述步骤进行详细的描述。在步骤S100中,开启智能终端的WIFI热点,在智能终端的系统用户层上配置IPtables规则的配置文件。具体来说,IPtables是用来设置、维护和检查Linux内核的IP包过滤规则的。在本实施例中,所述IPtables规则的配置文件包括iptables、busybox等工具文件。将busybox、iptables相关命令的二进制文件打包并拷贝到所述流量统计方法相关进程的文件夹下即完成配置过程。需要说明的是,在其他实施例中,所述配置过程也可为在智能终端的WIFI热点开启后,检测所述系统用户层上的所述流量统计方法相关进程的文件夹下是否有IPtables规则的配置文件,若有,则配置完成,若无,则将其打包拷贝到所述文件夹下。所述智能终端为具有WIFI热点功能的终端,譬如手机,平板电脑等。所述客户端为具有WIFI功能的终端,譬如手机,平板电脑等,从而可WIFI连接所述智能终端。在步骤S200中,检测是否有客户端连接到所述WIFI热点,若有,则获取客户端的IP地址。具体来说,智能终端便会每隔第一预定时间检测是否有客户端连接到所述WIFI热点,若有,则获取客户端的IP(InternetProtocol,网络之间互连的协议)地址。关于第一预定时间可根据需求进行设置,譬如0.1s,0.5s,1s(秒)等。在实际应用时,用户打开WIFI热点功能后,启动本发明的基于IPtables的WIFI热点流量统计方法,并开始查询连接该WIFI热点的客户端的IP信息。所述客户端IP的查询有两种方法:一是在智能操作系统的内核层获取客户端的连接事件,并将该连接事件及其相关数据(客户端名称、IP和MAC等信息)转换为用户事件上报给用户层,监听该事件并获取客户端IP信息;二是按一定的间隔去轮询操作系统的/proc/net/arp文件,该文件记录了连接该WIFI热点的客户端的所有信息,读取其中的IP信息即可。所述MAC即MediaAccessControl或者MediumAccessControl,硬件地址。需要说明的是,步骤S100与步骤S200并无特定的先后顺序限制,检测是否有客户端连接到所述WIFI热点这一步骤可以在配置IPtables规则的配置文件步骤之前,也可在其之后,也可同时进行。在所述步骤S300中,调用IPtables规则的配置文件,为获取到的所述客户端的IP地址设置IPtables规则,并根据所述IPtables规则统计所述客户端的IP地址经过所述WIFI热点发送和接收的数据量,将所述客户端发送和接收的数据量相加得到对应的流量数据。对已连接所述WIFI热点的客户端IP设置所述IPtables规则,统计该客户端上经过所述WIFI热点发送和接收的数据量;每隔第二预定时间执行IPtables查询信息命令,将所述客户端经过所述WIFI热点的发送量和接收量相加得到所述WIFI热点分享的流量数据。所述第二预定时间可根据需要进行设置,譬如0.1s,0.5s,1s(秒)等。具体来说,调用iptables、busybox文件设置IPtables规则如下:iptables–IFORWARD–sIP–jACCEPT、及iptables–IFORWARD–dIP–jACCEPT。该IPtables规则会记录所有客户端经过智能终端WIFI热点发送和接收的数据包。在实际应用时,所述流量统计方法按一定的时间间隔执行iptables查询信息命令,具体如下命令:Iptables-LFORWARD–v–n–x;该命令可以查询所有FORWARD规则下的客户端发送和接收的数据包大小,将所有客户端的发送量和接收量相加,即可获得到执行命令为止WIFI热点所分享的流量,将该数据上报给用户。进一步地,当有多个客户端连接到所述WIFI热点时,根据所述IPtables规则统计每一个客户端的IP地址经过所述WIFI热点发送和接收的数据量,将每一个客户端发送和接收的数据量相加得到对应的流量数据,将所有客户端的发送量和接收量相加得到所述WIFI热点分享的流量数据。在步骤S400中,在所述智能终端上显示所述流量数据。具体来说,就是统计客户端上的流量总量,然后发送到智能终端上显示,从而方便智能终端用户一目了然WIFI热点已分享的流量,实现了实时统计智能终端分享的流量,避免了智能终端用户享过量,给用户造成了额外的开销。进一步地,当所述智能终端的WIFI热点连接有多个客户端时,为了方便智能终端用户了解WIFI热点分享的流量情况,可将每一个客户端发送和接收的数据量相加得到对应的流量数据,将所有客户端的发送量和接收量相加得到所述WIFI热点分享的流量数据,然后在所述智能终端上显示每一个客户端对应的流量数据及所有客户端对应的WIFI热点分享的流量数据。也就是说,如果有3个客户端连接智能终端,可在智能终端上显示各个客户端对应的流量数据,同时也可显示三个客户端总的流量数据。在用户关闭WIFI热点功能后,执行iptables命令清除之前设置的iptablesFORWARD规则,具体可使用以下iptables命令清除之前设置的iptablesFORWARD规则:iptables–DFORWARD–sIP–jACCEPT、及iptables–DFORWARD–dIP–jACCEPT,关闭所述流量统计方法。本发明提供的基于IPtables的WIFI热点流量统计方法,利用IPtables包过滤系统,针对基于Android、FirefoxOS等移动操作系统的智能终端开发了一种WIFI热点分享流量的统计方法,可以实时的统计智能终端分享的流量,以便智能终端用户进行有效的流量管理。基于上述的WIFI热点流量统计方法,本发明还提供了一种基于IPtables的WIFI热点流量统计系统,如图2所示,包括:设置模块10,用于在智能终端的系统用户层上配置IPtables规则的配置文件;具体如步骤S100所述;连接检测模块20,用于在开启智能终端的WIFI热点后,检测是否有客户端连接到所述WIFI热点,若有,则获取客户端的IP地址;具体如步骤S200所述;流量统计模块30,用于调用IPtables规则的配置文件,为获取到的所述客户端的IP地址设置IPtables规则并根据所述IPtables规则统计所述客户端的IP地址经过所述WIFI热点发送和接收的数据量,将所述客户端发送和接收的数据量相加得到对应的流量数据;具体如步骤S300所述;显示模块40,用于在所述智能终端上显示所述流量数据;具体如步骤S400所述。进一步地,所述连接检测模块20包括:连接检测单元,用于每隔第一预定时间检测是否有客户端连接到所述WIFI热点,若有,则获取客户端的IP地址。进一步地,所述流量统计模块30包括:流量统计单元,用于对已连接所述WIFI热点的客户端IP设置所述IPtables规则,统计该客户端上经过所述WIFI热点发送和接收的数据量;流量计算单元,用于每隔第二预定时间执行IPtables查询信息命令,将所述客户端经过所述WIFI热点的发送量和接收量相加得到所述WIFI热点分享的流量数据。进一步地,所述流量统计模块30,还用于当有多个客户端连接到所述WIFI热点时,根据所述IPtables规则统计每一个客户端的IP地址经过所述WIFI热点发送和接收的数据量,将每一个客户端发送和接收的数据量相加得到对应的流量数据,将所有客户端的发送量和接收量相加得到所述WIFI热点分享的流量数据。进一步地,所述显示模块40,还用于在所述智能终端上显示每一个客户端对应的流量数据及所有客户端对应的WIFI热点分享的流量数据。所述智能终端为手机、平板电脑等具有WIFI热点功能的终端,譬如手机、平板电脑;所述客户端,为具有WIFI功能的终端,譬如手机、平板电脑。综上所述,本发明提供的一种基于IPtables的WIFI热点流量统计方法及系统,通过在智能终端的系统用户层上配置IPtables规则的配置文件;开启智能终端的WIFI热点,检测是否有客户端连接到所述WIFI热点,若有,则获取客户端的IP地址;调用IPtables规则的配置文件,为获取到的所述客户端的IP地址设置IPtables规则,并根据所述IPtables规则统计所述客户端的IP地址经过所述WIFI热点发送和接收的数据量,将所述客户端发送和接收的数据量相加得到对应的流量数据;在所述智能终端上显示所述流量数据;使得智能终端能实时统计WIFI热点分享的流量,直观显示智能终端WIFI热点分享的流量,避免智能终端分享流量过量,以便有效进行智能终端的流量管理,给用户带来了大大的方便。应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1