Python判斷IP是否屬於某子網
直接上程式碼:
<pre name="code" class="python"># _*_ coding: utf-8 _*_ __author__ = 'Hondsam Xu <[email protected]>' import socket,struct ''' 轉換為子網地址,並檢驗和輸出正確的子網地址 192.168.2.1 -> 192.168.2.1/255.255.255.255 192.168.2.1/24 -> 192.168.2.0/255.255.255.0 192.168.2.1/255.255.255.0 -> 192.168.2.0/255.255.255.0 ''' def format_subnet(subnet_input): # 如果輸入的ip,將掩碼加上後輸出 if subnet_input.find("/") == -1: return subnet_input + "/255.255.255.255" else: # 如果輸入的是短掩碼,則轉換為長掩碼 subnet = subnet_input.split("/") if len(subnet[1]) < 3: mask_num = int(subnet[1]) last_mask_num = mask_num % 8 last_mask_str = "" for i in range(last_mask_num): last_mask_str += "1" if len(last_mask_str) < 8: for i in range(8-len(last_mask_str)): last_mask_str += "0" last_mask_str = str(int(last_mask_str,2)) if mask_num / 8 == 0: subnet = subnet[0] + "/" + last_mask_str +"0.0.0" elif mask_num / 8 == 1: subnet = subnet[0] + "/255." + last_mask_str +".0.0" elif mask_num / 8 == 2 : subnet = subnet[0] + "/255.255." + last_mask_str +".0" elif mask_num / 8 == 3: subnet = subnet[0] + "/255.255.255." + last_mask_str elif mask_num / 8 == 4: subnet = subnet[0] + "/255.255.255.255" subnet_input = subnet # 計算出正確的子網地址並輸出 subnet_array = subnet_input.split("/") subnet_true = socket.inet_ntoa(\ struct.pack("!I",struct.unpack("!I",socket.inet_aton(subnet_array[0]))[0] & \ struct.unpack("!I",socket.inet_aton(subnet_array[1]))[0]))\ + "/" + subnet_array[1] return subnet_true # 判斷ip是否屬於某個網段 def ip_in_subnet(ip,subnet): subnet = format_subnet(str(subnet)) subnet_array = subnet.split("/") ip = format_subnet(ip + "/" + subnet_array[1]) return ip == subnet print (ip_in_subnet("192.168.2.252","192.168.0.0/255.255.0.0")) print (ip_in_subnet("192.168.2.252","192.168.3.0/255.255.255.0")) print (ip_in_subnet("192.168.2.252","192.168.2.0/23")) print (ip_in_subnet("192.168.2.252","192.168.2.0/29")) print (ip_in_subnet("192.168.2.2","192.168.2.2")) print (ip_in_subnet("192.168.2.2","192.168.2.3"))
相關推薦
Python判斷IP是否屬於某子網
直接上程式碼:<pre name="code" class="python"># _*_ coding: utf-8 _*_ __author__ = 'Hondsam Xu <[email protected]>' import sock
Java-NowCoder-判斷兩個IP是否屬於同一子網
題目要求: 子網掩碼是用來判斷任意兩臺計算機的IP地址是否屬於同一子網路的根據。 子網掩碼與IP地址結構相同,是32位二進位制數,其中網路號部分全為“1”和主機號部分全為“0”。利用子網掩碼可以判斷兩臺主機是否中同一子網中。若兩臺主機的IP地址分別與它們
五層結構 判斷兩個IP是否處於同一子網?
網絡管理 主機ip .cn 文件 七層 smt 無限 可靠傳輸 log 互聯網協議按照功能不同分為osi七層或tcp/ip五層或tcp/ip四層 應用層(各種協議) 端口 H
PHP判斷IP是否屬於某個網段
<?php /** * 判斷IP是否在某個網路內 * @param $ip * @param $network * @return bool */ function ip_in_network($ip, $network) { $ip = (double) (sprintf("%u"
《網絡管理》IP地址管理與子網劃分
響應時間 例如 bcf 拓撲圖 設置密碼 屬性 正在 段地址 數量 IP地址管理——ipmaster ipmaster是一款對IP地址進行管理的軟件,使用該軟件可以提高網絡管理員的工作效率。在大型網絡中,使用該軟件可以有序且高效地實現大中小型企業網IP地址的分配和管理。該
Spring Cloud啟動應用時指定IP或忽略某張網卡配置
cond 網絡配置 生態 onf docs col mas utils efault 說明:分布式應用部署到服務上,由於服務器可能存在多張網卡,造成IP地址不準的問題。 解決方法: 1、直接添加忽略某張網卡的配置: spring.cloud.inetutils.i
IP,DNS,子網掩碼,路由器,交換機,ISP,這些網絡術語是什麽意思
即使 onf address 公網ip地址 mac 處的 網絡號 cmd 相同 IP:很明顯,IP就是電腦的身份證。 此處需要分辨私網IP與公網IP,公網IP地址是唯一的,公網IP地址分為ABC三類(還有DE,D類地址稱為廣播地址,供特殊協議向選定的節點發送信息時用。E類地
用正則表示式表示IP,埠和子網掩碼
一、IP地址的正則表示式 1、無任何判斷: /^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/ 2、判斷0.0.0.0不符合IP書寫規範: /^(25[0-5]|2[
Spring Cloud啟動應用時指定IP或忽略某張網絡卡配置
spring.cloud.inetutils.default-hostname spring.cloud.inetutils.default-ip-address spring.cloud.inetutils.ignored-interfaces spring.cloud.inetutils.preferre
IP地址劃分和子網劃分
1、IP地址劃分 2、子網劃分 IPv4地址層次可劃分如下: 網路ID(分配給網點)子網ID(由網點選擇)主機ID(主機使用者選擇)某個給定子網上所有主機都共享同一個子網掩碼,它指定子網ID和主機ID之間的界線。子網掩碼中值為1的位涵蓋網路ID和子網ID,值為0的位則涵
IP地址段與子網掩碼計算表
掩碼位數 子網數 十進位制掩碼 IP數 參考可用IP數 0 1 0 0 0 0 4294967296 4
Python判斷IP合法性
正則粉絲們會這麼做: p = re.compile("^((?:(2[0-4]\d)|(25[0-5])|([01]?\d\d?))\.){3}(?:(2[0-4]\d)|(255[0-5])|
已知ip地址和其子網掩碼如何求網路號子網號主機號
已知ip地址為10.130.89.95,其子網掩碼為255.255.255.224,求其網路號、子網號和主機號。 要看子網掩碼變長在第幾節,255.255.255.224是在第四節借了位 把224轉換為2進位制,windows的計算器科學型能幫你計算。是1110000
Python判斷一個字串是否包含子串的幾種方法
1.使用成員操作符 in >>> s='nihao,shijie' >>> t='nihao' >>> result = t in s >
IP地址分類與子網掩碼
點分十進位制數表示的IPv4地址被分為幾類,以適應大型、中型、小型的網路。這些類的不同之處在於不同類別的網路地址所佔位數。 主要分為一下幾類: A類 A類地址首位一定是0, 且網路地址佔8位,即子網掩碼預設為225.0.0.0 理論來講,網路地址
Java判斷IP在屬於ip段
問題是這樣的,輸入一個IP地址,先判斷一下該IP是否是合法的IP地址,然後再判斷該IP地址是否在一個相應的IP段內開始IP為beginIp,結束問題是這樣的,輸入一個IP地址,先判斷一下該IP是否是合
IP地址,以及子網劃分
****************************隨記,僅是用來記錄起來 乙太網協議 PPP 點對點協議(PPP)為在點對點連線上傳輸多協議資料包提供了一個標準方法。PPP 最初設計是為兩個對等節點之間的 IP 流量傳輸提供一種封裝協議。 PPP通過建立虛擬連線可
python-掃描某一網段下的ip
lin break bsp tar thread main python per not 1 #!/usr/bin/env python 2 #-*- coding:utf-8 -*- 3 ############################ 4 #File
寫一個簡單的python腳本來返回ip地址的掩碼,子網個數等
pypi package 多少 ask pri 1.2 bfc pty rom 如果我們想快速得到一個IP地址段有多少個ip,快速得到IP地址段的子網掩碼,或者快速得到一個IP地址的二進制,那麽可以來學習一下。本文利用python的一個IP分析模塊IPy實現,首先安裝IPy
python判斷合法IP並區分內網和外網地址
內網 xtran 3.4 for imp app lse -s mat import redef legit_ip(_ip): compile_ip = re.compile(‘^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5