国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ip大小比較的方法

這篇具有很好參考價值的文章主要介紹了ip大小比較的方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、 問題描述:

需要判斷IP值是否在某個范圍內,比如說某某IP是否在192.169.1.0/24?

二、 方案描述:

1、首先要獲取IP范圍;
from ipaddress import IPv4Network
start_ip = IPv4Network('19.11.1.0/24')[0]
end_ip = IPv4Network('19.11.1.0/24')[-1]
print(f'{start_ip}->{end_ip}')
輸出:
19.11.1.0->19.11.1.255
2、比較的方法
方法一、字符串直接比較:
start_ip <= target_ip <= end_ip

這個方法是有問題的,檢出來的一定是準確的,但會漏掉很多;

比如說:192.168.1.9 是大于 192.168.1.255

方法錯誤

方法二、轉變整數(shù)進行比較:
int(start_ip.replace('.',  '')) <= int(target_ip.replace('.', '') <= int (end_ip.replace('.', '')

這個方法也有問題:
start_ip–>: 191110
end_ip–>:19111255
那么滿足條件的IP數(shù)量遠遠不止256,必然是錯誤的;
start_ip是6位數(shù),end_ip是8位數(shù),那么任意7位數(shù)的都可以滿足條件,那必然是錯誤的結果

方法錯誤

方法三、轉換成IPv4Network中的對象
IPv4Network(end_ip) >= IPv4Network(target_ip) >= IPv4Network(start_ip) 

方法正確

方法四、轉換成整數(shù)列表
def ip2int(ip):
	return list(map(int, ip.split('.'))
ip2int(start_ip) <= ip2int(target_ip) <= ip2int(end_ip)

方法正確

方法五、轉換成相同整數(shù)(二)
def ip2int(ip):
    a, b, c, d = map(int, ip.split('.'))
    return ((a * 255 + b) * 255  + c) * 255 + d 
    
ip2int(start_ip) <= ip2int(target_ip) <= ip2int(end_ip)

方法正確

三、方案優(yōu)劣:

速度優(yōu)劣:

方法三:
%%timeit
def ip2int(ip):
    return list(map(int, ip.split('.')))
for i in range(1000):
    ip2int('19.2.2.9') > ip2int('19.2.2.255')
輸出:
28.8 ms ± 1.68 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
方法四、
%%timeit
def ip2int(ip):
    return list(map(int, ip.split('.')))
for i in range(1000):
    ip2int('19.2.2.9') > ip2int('19.2.2.255')
輸出:
3.8 ms ± 169 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)
方法五、
%%timeit
def ip2int(ip):
    a, b, c, d = map(int, ip.split('.'))
    return ((a * 255 + b) * 255  + c) * 255 + d 
for i in range(1000):
    ip2int('19.2.2.9') > ip2int('19.2.2.255')
輸出:
4.02 ms ± 168 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)

四、結論:

1、綜上所述:選擇方法四;

2、IP比較的本質是就是要轉換成相同位數(shù)的整數(shù)類型進行比較;

會不會存在更簡潔方法呢?文章來源地址http://www.zghlxwxcb.cn/news/detail-476247.html

到了這里,關于ip大小比較的方法的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • java判斷字符串是否和空字符串(““)相等、是否和空引用(null)相等,比較順序不同導致出現(xiàn)死代碼(Dead code)

    java判斷字符串是否和空字符串(““)相等、是否和空引用(null)相等,比較順序不同導致出現(xiàn)死代碼(Dead code)

    我在用Java實現(xiàn)需求的時候,用到了字符串跟空字符串(“”)比較,跟空引用null比較,兩個比較語句的順序不同,一個順序出現(xiàn)了死代碼(Dead code)。 下面這個代碼片段,字符串line跟空字符串(“”)的比較放在跟null的比較前面,編譯器提醒紅色方框中的代碼是死代碼:

    2024年02月14日
    瀏覽(28)
  • Java 判斷兩個IP段是否有交集

    一、背景介紹 在有些場景,需要判斷IP段是否有交集,比如:配置一些設備的過濾規(guī)則,避免IP段重復配置,需要做IP段是否重疊的校驗。 IP段有交集的場景有幾種: 1)IP段1包含IP段2; 2)IP段2包含IP段1; 3)IP段1的起始IP與IP段2的結束IP相同,或者IP段1的結束IP與IP段2的起始

    2024年02月16日
    瀏覽(18)
  • C#判斷輸入的IP地址是否合法

    代碼中鏈接java后端時,要從界面中的輸入框讀取輸入的ip地址,而ip地址尤其特定的格式,因此編寫函數(shù)判斷輸入的ip地址是否格式正確,如果格式正確,則返回true;如果格式錯誤,則返回false。代碼如下:

    2024年02月13日
    瀏覽(26)
  • (IP地址的計算)判斷兩個IP是否歸屬于同一子網(wǎng)

    目錄 前言 判斷依據(jù)(附示例) 問題 ???????? 今天在做題的時候做到了IP地址計算這一部分的題目,太久沒有看過了,忘得都差不多了,所以就查閱了資料并做了如下筆記,幫助學習理解,同時把這道題的題目與網(wǎng)友分享的做法分享給大家,可以一起做一做,希望能幫助

    2024年02月08日
    瀏覽(19)
  • 如何判斷本地(路由器)分配的IP是否是公網(wǎng)IP?

    如何判斷本地(路由器)分配的IP是否是公網(wǎng)IP?

    首先說說什么是公網(wǎng)IP,公網(wǎng)IP是全球唯一IP地址。如果是聯(lián)通的帶寬,移動網(wǎng)絡不能訪問,分配的IP只能在聯(lián)通內部訪問,這個IP最多只能算是“聯(lián)通內的公網(wǎng)IP”,不是真的公網(wǎng)IP。如何判斷本地(路由器)分配的IP是否公網(wǎng)IP?有多種方法,以下供小伙伴們參考。 1.詢問法:

    2024年02月14日
    瀏覽(30)
  • 判斷兩個IP是否在同一網(wǎng)段(SHELL實現(xiàn))

    實現(xiàn)代碼

    2024年03月19日
    瀏覽(29)
  • 題解 | #判斷兩個IP是否屬于同一子網(wǎng)# 簡單好理解

    題解 | #判斷兩個IP是否屬于同一子網(wǎng)# 簡單好理解

    題解 | #合并兩個排序的鏈表# import java.util.*;/* * public class ListNode { * int val; * ListNode next = ? 題解 | #高精度整數(shù)加法# const rl = require(\\\"readline\\\").createInterface({ input: process.stdin ? 二本電氣工程及其自動化投春招 聽勸抗壓 求指點 怎么修改 ? 題解 | #查找兩個字符串a(chǎn),b中的最長公共子

    2024年03月24日
    瀏覽(45)
  • 【華為OD機試】1035 - 判斷兩個IP是否屬于同一子網(wǎng)

    ??個人博客首頁: KJ.JK ? ??專欄介紹: 華為OD機試真題匯總,定期更新華為OD各個時間階段的機試真題,每日定時更新,本專欄將使用Python語言進行更新解答,包含真題,思路分析,代碼參考,歡迎大家訂閱學習

    2024年02月02日
    瀏覽(34)
  • Java 快速判斷一個 IP 是否在給定的網(wǎng)段內

    Java 快速判斷一個 IP 是否在給定的網(wǎng)段內

    要在 Java 中判斷一個 IP地址 是否在給定的網(wǎng)段內,可以使用 子網(wǎng)掩碼 將 IP地址 和 子網(wǎng)掩碼 進行 與操作 來提取網(wǎng)絡地址,并將其與給定的子網(wǎng)地址進行比較。 下面的例子 由強大的 ChatGPT 提供 。 代碼如下所示(子網(wǎng)掩碼的計算可以截取字符串后,借助底部的算法進行獲得

    2024年02月02日
    瀏覽(91)
  • 判斷服務器IP否被墻 是否被TCP阻斷

    判斷服務器IP否被墻 是否被TCP阻斷

    現(xiàn)在國內很多購買國外主機服務器的,但往往很多主機商的機子用的人多了,國內使用者用這些服務器做啥的都有,正兒八經(jīng)的做外貿其實沒多大事情,但往往有些人就是不遵守法律法規(guī),長此以往用的人多了,這些國外的主機商提供的服務器ip就會遭到國內的封殺。 今天教

    2024年02月12日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包