백엔드 개발 PHP 튜토리얼 将IP地址转换为整型数字的PHP方法、Asp方法和MsSQL方法、MySQL方法_php技巧

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

May 17, 2016 am 08:57 AM
IP 주소 전환하다

首先我们要先了解一下IP地址转换为整型(严格来说应该说是长整型)的原理~

【转换原理】:假设IP为:w.x.y.z,则IP地址转为整型数字的计算公式为:intIP = 256*256*256*w + 256*256*x + 256*y + z

【PHP的互转】:PHP的转换方式比较简单,它内置了两个函数
int ip2long ( string $ip_address )和 string long2ip ( string $proper_address )
可以直接调用使用~

【Asp的互转】:自定义函数如下,
'.-----------------------------------------------------------.
'|  describtion: 将IP转换为int型数字                           |
'|      Authors: abandonship(http://jb51.net)            |
'~-----------------------------------------------------------~
Function IP2Num(ByVal strIP)
    Dim nIP
    Dim nIndex
    Dim arrIP
    arrIP = Split(strIP, ".", 4)
    For nIndex = 0 To 3
        If Not nIndex = 3 Then
            arrIP(nIndex) = arrIP(nIndex) * (256 ^ (3 - nIndex))
        End If
        nIP = nIP + arrIP(nIndex)
    Next
    IP2Num = nIP
End Function
'.-----------------------------------------------------------.
'|  describtion: 将int型数字转换为IP                           |
'|      Authors: abandonship(http://jb51.net)            |
'~-----------------------------------------------------------~
Function Num2IP(ByVal nIP)
    Dim strIP
    Dim nTemp
    Dim nIndex
    For nIndex = 3 To 0 Step -1
     nTemp = Int(nIP / (256 ^ nIndex))
     strIP = strIP & nTemp & "."
     nIP = nIP - (nTemp * (256 ^ nIndex))
    Next
    strIP = Left(strIP, Len(strIP) - 1)
    Num2IP = strIP
End Function

【MsSQL的互转】:自定义函数如下,
/***************************************************************
 * 将IP转换为int型数字                         |
 * Code CreateBy abandonship(http://jb51.net)        |
 **************************************************************/
CREATE FUNCTION [dbo].[ipToInt](  
 @strIp varchar(15)  
)RETURNS bigint  
AS  
BEGIN  
 declare @nIp bigint  
 set @nIp = 0   
 select
  @nIp = @nIp + LEFT( @strIp, charindex('.',@strIp+'.')-1)*Id 
 from(  
  select Id = cast(1*256*256*256 as bigint)  
  union all select 1*256*256  
  union all select 1*256  
  union all select 1
 ) as T
 return (@nIp)
END 

/***************************************************************
 * 将int型数字转换为IP                         |
 * Code CreateBy abandonship(http://jb51.net)        |
 **************************************************************/
CREATE FUNCTION [dbo].[intToIP](
 @nIp bigint  
)RETURNS varchar(15)  
As  
BEGIN  
 declare @strIp varchar(15)  
 set @strIp = ''  
 select
  @strIp = @strIp +'.'+ cast(@nIp/ID as varchar), @nIp = @nIp%ID
 from(  
  select ID = cast(1*256*256*256 as bigint)  
  union all select 1*256*256  
  union all select 1*256  
  union all select 1
 ) as T  
 return(stuff(@strIp,1,1,''))  
END 

【MySQL的互转】:相对于MsSQL来说MySQL的转换方式比较简单,它和PHP一样也内置了两个函数
IP转为整型: select INET_ATON (IP地址) 和 整型转为IP: select INET_NTOA ( IP的整型数值 )
可以直接调用使用~

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Xiaohongshu가 IP 주소를 표시하지 않도록 설정하는 방법은 무엇입니까? 도시를 찾기 위해 ID를 어떻게 변경합니까? Xiaohongshu가 IP 주소를 표시하지 않도록 설정하는 방법은 무엇입니까? 도시를 찾기 위해 ID를 어떻게 변경합니까? Mar 27, 2024 pm 03:00 PM

Xiaohongshu가 IP 주소를 표시하지 않도록 설정하는 방법은 무엇입니까? 도시를 찾기 위해 ID를 어떻게 변경합니까?

Xiaomi 휴대폰의 IP 주소는 어디에 있습니까? Xiaomi 휴대폰의 IP 주소는 어디에 있습니까? Feb 29, 2024 pm 06:10 PM

Xiaomi 휴대폰의 IP 주소는 어디에 있습니까?

Xianyu_Share의 IP 주소를 변경하는 방법 Xianyu의 IP 주소를 변경하는 방법 Xianyu_Share의 IP 주소를 변경하는 방법 Xianyu의 IP 주소를 변경하는 방법 Mar 20, 2024 pm 05:06 PM

Xianyu_Share의 IP 주소를 변경하는 방법 Xianyu의 IP 주소를 변경하는 방법

Douyin IP 주소의 위치를 ​​변경하는 방법은 무엇입니까? IP 주소의 위치가 변경되는 이유는 무엇입니까? Douyin IP 주소의 위치를 ​​변경하는 방법은 무엇입니까? IP 주소의 위치가 변경되는 이유는 무엇입니까? Mar 21, 2024 pm 06:30 PM

Douyin IP 주소의 위치를 ​​변경하는 방법은 무엇입니까? IP 주소의 위치가 변경되는 이유는 무엇입니까?

전각 영문자를 반각 형태로 변환하는 실용적인 팁 전각 영문자를 반각 형태로 변환하는 실용적인 팁 Mar 26, 2024 am 09:54 AM

전각 영문자를 반각 형태로 변환하는 실용적인 팁

Windows 11/10에서 ODT를 Word로 변환하는 방법은 무엇입니까? Windows 11/10에서 ODT를 Word로 변환하는 방법은 무엇입니까? Feb 20, 2024 pm 12:21 PM

Windows 11/10에서 ODT를 Word로 변환하는 방법은 무엇입니까?

qq 음악을 mp3 형식으로 변환하는 방법 휴대폰에서 qq 음악을 mp3 형식으로 변환 qq 음악을 mp3 형식으로 변환하는 방법 휴대폰에서 qq 음악을 mp3 형식으로 변환 Mar 21, 2024 pm 01:21 PM

qq 음악을 mp3 형식으로 변환하는 방법 휴대폰에서 qq 음악을 mp3 형식으로 변환

Golang 시간 처리: Golang에서 타임스탬프를 문자열로 변환하는 방법 Golang 시간 처리: Golang에서 타임스탬프를 문자열로 변환하는 방법 Feb 24, 2024 pm 10:42 PM

Golang 시간 처리: Golang에서 타임스탬프를 문자열로 변환하는 방법

See all articles