`
yzd
  • 浏览: 1813393 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

将IP地址转成长整型函数

 
阅读更多
函数一、  /// &lt;summary&gt;<br> /// IP长整型转换<br> /// &lt;/summary&gt;<br> /// &lt;param name="IP"&gt;&lt;/param&gt;<br> /// &lt;returns&gt;&lt;/returns&gt;<br> private long IpAddress(string IP)<br> {<br> long ipcode = 0;<br> string[] ipn = IP.Split('.');<br> for (int i = 0; i &lt; ipn.Length; i++)<br> {<br> ipcode += int.Parse(ipn[i]);<br> if (i &lt; ipn.Length - 1)<br> {<br> ipcode &lt;&lt;= 8;<br> }<br> }<br> return ipcode;<br> }<br>函数二、<br><br>/***********************************************************************<br>* 名称:comm_IP2Num<br>* 功能:通用/IP地址转换成长整数<br>* 时间:2007年5月22日 13:08:38<br>* 版本:0.0.1<br>* 备注:返回值小于0,表示出错了<br>***********************************************************************/<br>CREATE FUNCTION comm_IP2Num(<br> @IP VARCHAR(15)<br>)<br>RETURNS BIGINT<br>AS<br>BEGIN<br> DECLARE @L INT<br> SET @L=LEN(@IP)<br> IF (@IP NOT LIKE '%.%.%.%' OR @L&gt;15)<br> BEGIN<br>  RETURN -1<br> END<br> DECLARE @IP1 VARCHAR(3)<br> DECLARE @IP2 VARCHAR(3)<br> DECLARE @IP3 VARCHAR(3)<br> DECLARE @IP4 VARCHAR(3)<br> DECLARE @NIP BIGINT<br> DECLARE @T INT<br> SET @NIP=-8<br> SET @T=CHARINDEX('.',@IP)<br> IF @T&gt;4 OR @T&lt;=0<br> BEGIN<br>  RETURN -2<br> END<br> SET @IP1=SUBSTRING(@IP,1,@T-1)<br> SET @IP=SUBSTRING(@IP,@T+1,@L-@T+1)<br><br> SET @T=CHARINDEX('.',@IP)<br> IF @T&gt;4 OR @T&lt;=0<br> BEGIN<br>  RETURN -3<br> END<br> SET @IP2=SUBSTRING(@IP,1,@T-1)<br> SET @IP=SUBSTRING(@IP,@T+1,@L-@T+1)<br><br> SET @T=CHARINDEX('.',@IP)<br> IF @T&gt;4 OR @T&lt;=0<br> BEGIN<br>  RETURN -4<br> END<br> SET @IP3=SUBSTRING(@IP,1,@T-1)<br> SET @IP4=SUBSTRING(@IP,@T+1,@L-@T+1)<br> IF LEN(@IP4)&lt;1 OR LEN(@IP4)&gt;3<br> BEGIN<br>  RETURN -5<br> END<br><br> IF IsNumeric(@IP1)=1 AND IsNumeric(@IP2)=1 AND IsNumeric(@IP3)=1 AND IsNumeric(@IP4)=1<br> BEGIN<br>  DECLARE @NIP1 BIGINT<br>  DECLARE @NIP2 BIGINT<br>  DECLARE @NIP3 BIGINT<br>  DECLARE @NIP4 BIGINT<br>  SET @NIP1=CAST(@IP1 AS BIGINT)<br>  SET @NIP2=CAST(@IP2 AS BIGINT)<br>  SET @NIP3=CAST(@IP3 AS BIGINT)<br>  SET @NIP4=CAST(@IP4 AS BIGINT)<br>  IF @NIP1&gt;255 OR @NIP1&lt;0 OR @NIP2&gt;255 OR @NIP2&lt;0 OR @NIP3&gt;255 OR @NIP3&lt;0 OR @NIP4&gt;255 OR @NIP4&lt;0<br>  BEGIN<br>   RETURN -6<br>  END<br>  SET @NIP=0<br>  SET @NIP=@NIP+@NIP1*256*256*256<br>  SET @NIP=@NIP+@NIP2*256*256<br>  SET @NIP=@NIP+@NIP3*256<br>  SET @NIP=@NIP+@NIP4<br>  RETURN @NIP<br> END<br> ELSE<br> BEGIN<br>  RETURN -7<br> END<br> RETURN @NIP<br>END<br>
分享到:
评论
1 楼 xxdd328 2012-05-18  
晕,你也算是个人才!

相关推荐

    点分十进制IP转换为长整型

    点分十进制IP和长整型转换,直接把IP地址转换为整型,存数据库增加效率。

    将IP地址转换为整型数字的PHP方法、Asp方法和MsSQL方法、MySQL方法

    首先我们要先了解一下IP地址转换为整型(严格来说应该说是长整型)的原理~ 【转换原理】:假设IP为:w.x.y.z,则IP地址转为整型数字的计算公式为:intIP = 256*256*256*w + 256*256*x + 256*y + z 【PHP的互转】:PHP...

    用Python将IP地址在整型和字符串之间轻松转换

    MySQL中存在INET_ATON() 、INET_NTOA()函数进行IP整型和字符串之间的转换,那么Python中存在什么方法可以实现MySQL中INET_ATON() 、INET_NTOA()的功能呢?方法肯定是有的~ 方法如下 # 导入相关模块包 import ...

    最新国内IP地址数据库精简版,仅保留省份和城市(SQL版)

    首先把ip地址转换为整型数值,PHP可使用ip2long函数, SQL语句如下: SELECT * FROM `ip2city` WHERE '{转换后的ip整型数值}' BETWEEN `start_ip` AND `end_ip` 本数据库是根据纯真IP数据库2012.5.15版数据自行转换...

    PHP中IP地址与整型数字互相转换详解

    PHP中有内置函数ip2long可以将ip地址转换整型。 复制代码 代码如下: $ip = ‘210.110.11.49’; echo ip2long($ip); 输出: 复制代码 代码如下: -764540111 输出的整型有负号是因为我们得到的结果是有符号整型,有...

    最新国内IP地址数据库精简版,仅保留省份和城市(SQL文件版)

    国内最新IP地址数据库,可导入MYSQL,SQL查询方法:首先把ip地址转换为整型数值,PHP可使用ip2long函数,SQL语句如下:SELECT * FROM `ip2city` WHERE '{转换后的ip整型数值}' BETWEEN `start_ip` AND `end_ip`本...

    建立一个soket函数

    bind(),因为这种情况下只需知道目的机器的IP 地址,而客户通过哪个端口与 服务器建立 连接并不需要关心,socket 执行体为你的程序自动选择一个未被占 用的端口,并通知你的程序数据什么时 候到打断口。 Connect ...

    VB网络工具箱源程序.7z

    它可以扫描指定IP段**、获取本机端口、网络流量监控、IP地址计算器、TCP/IP配置信息提娶Ping命令、端口侦听、分段IP与长整型IP地址转换、基于API函数的端口查看器、基于Windows命令的端口查看器、检测指定网络是否...

    一个很强的VB网络编程技巧集【源码】.rar

    原型是一个用VB6.0写的网络工具箱程序,它可以实现以下功能:TCP/IP配置信息提娶Ping命令、端口侦听、网络流量监控、IP地址计算器、服务器时间同步、分段IP与长整型IP地址转换、基于API函数的端口查看器、基于...

    PHP的使用技巧集.zip

    1, 使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存储到数据库里。 这种方法把存储空间降到了接近四分之一(char(15) 的 15 个字节对整形的 4 个字节),计算一个特定的地址是不是在一个区段内页更简单...

    网络检测工具集合(VB)

    一款很专业的VB编写的网络检测工具集合,具有网络流量监视、IP地址计算器、TCP/IP配置信息提取、分段IP与长整型IP地址转换、扫描指定IP段主机、查看本地计算机各端口、端口查看(API函数调用)、端口查看(调用windows...

    qqwry.datIP地址信息

    //ip2long将IP地址转成无符号的长整型,也可以用来验证IP地址 return pack('N', intval(ip2long($ip))); } function getstring($data = "") { $char = fread($this-&gt;fp, 1); while (ord($char) &gt; 0) { //ord...

    PHP下10件你也许并不了解的事情

    使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存储到数据库里。这种方法把存储空间降到了接近四分之一(char(15) 的 15 个字节对整形的 4 个字节),计算一个特定的地址是不是在一个区段内页更简单了,...

    MyFll Microsoft Visual FoxPro设计的扩展库

    DomainToIP 转换域名为IP地址 DialUp 建立拨号连接 DialDown 断开拨号连接 GetSqlServer 列出所有网络上的SQL Server IpToMAC 根据IP得到MAC地址 邮件函数: SmtpCreate 创建一个SMTP发送邮件的句柄 ...

    ASP常用函数:CLngIP()

    作用:把IP地址转为长整型 &lt;&#37; Function CLngIP(ByVal asNewIP) Dim lnResults Dim lnIndex Dim lnIpAry lnIpAry = Split(asNewIP, “.”, 4) For lnIndex = 0 To 3 If Not lnIndex = 3 ...

    十个PHP高级应用技巧果断收藏

    1, 使用ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存储到数据库里。 这种方法把存储空间降到了接近四分之一(char(15) 的 15 个字节对整形的 4 个字节),计算一个特定的地址是不是在一个区段内页更简单了...

    100个直接可以拿来用的JavaScript实用功能代码片段(1-10)

    29、原生JavaScript整型解析为IP地址 30、原生JavaScript实现checkbox全选与全不选 31、原生JavaScript判断是否移动设备 32、原生JavaScript判断是否移动设备访问 33、原生JavaScript判断是否苹果移动设备访问 34、...

    宋劲彬的嵌入式C语言一站式编程

    5. IP地址与路由 6. UDP段格式 7. TCP协议 7.1. 段格式 7.2. 通讯时序 7.3. 流量控制 37. socket编程 1. 预备知识 1.1. 网络字节序 1.2. socket地址的数据类型及相关函数 2. 基于TCP协议的网络程序 2.1. 最简单的TCP...

Global site tag (gtag.js) - Google Analytics