如何判斷IP位址是否在某個IP段中

2021-07-01 23:39:08 字數 1879 閱讀 5957

sql如何判斷ip位址是否在某個ip段中

環境sqlserver 2008 r2

1.我的表結構

ii_id  標識

ii_startip     開始ip

ii_endip      結束ip

si_id            學校id

ii_state        ip狀態是否檢查過 這是我在程式裡使用的

表名ipinfo

2.建立獲取ip函式

create   function getip(@ip varchar(20))

returns varchar(20)

asbegin

declare @ipre varchar(20)

set @ipre=''

if isnumeric(parsename(@ip,4))=1

set @ipre=right('000'+parsename(@ip,4),3)+'.'

if isnumeric(parsename(@ip,3))=1

set @ipre=@ipre+right('000'+parsename(@ip,3),3)+'.'

else 

set @ipre=@ipre+'%'+'.'

if isnumeric(parsename(@ip,2))=1

set @ipre=@ipre+right('000'+parsename(@ip,2),3)+'.'

else 

set @ipre=@ipre+'%'+'.'

if isnumeric(parsename(@ip,1))=1

set @ipre=@ipre+right('000'+parsename(@ip,1),3)

else 

set @ipre=@ipre+'%'

return @ipre

end3.查詢測試

select top 1000 [ii_id]

,[ii_startip]

,[ii_endip]

,[si_id]

,[ii_state]

from [ipinfo]

where getip('218.7.49.25') between getip(ii_startip) and getip(ii_endip)

asp.net如何判斷ip位址是否在某個ip段中

我的開發語言是asp.net(c#),下面我介紹乙個我在asp.net中如何判斷ip位址是否在某個ip段中

環境.net4.0  工具vs2010

1.ip的計算方法

///

/// 分割ip 

///

/// ip位址

///

private long getipnum(string ipaddress)

);long a = int.parse(ip[0]);

long b = int.parse(ip[1]);

long c = int.parse(ip[2]);

long d = int.parse(ip[3]);

return a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;

}///

/// 判斷客戶端的ip是否在某個ip段中  

///

/// 客戶端的ip

/// 開始ip

/// 結束ip

///

private bool isinner(long clientip, long begin, long end)

2.測試

protected void page_load(object sender, eventargs e)

else

}

判斷ip位址是否存在某個網段中

public class ipchangeutils count inetmask count return inetmask 功能 根據ip和位數返回該ip網段的所有ip 格式 parseipmaskrange 192.192.192.1 23 public static listparseipm...

判斷IP位址是否合法

1 字串切割判斷 def legalip ip ip ip.split m len ip if m 4or not ip 0 isdigit orint ip 0 0or int ip 0 255 print illegal else for i in range 1 m if ip i isdig...

判斷IP位址是否合理

方法1 正規表示式判定法 下面給出相對應的驗證ip的正規表示式 d表示0 9的任何乙個數字 表示正好出現兩次 0 4 表示0 4的任何乙個數字 的意思是或者 1 d的意思就是100 199之間的任意乙個數字 2 0 4 d的意思是200 249之間的任意乙個數字 25 0 5 的意思是250 255...