国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
ip與長整數(shù)的思路
python(2)把ip轉化為整數(shù),并且進行判斷
   
#!/usr/bin/python
#filename:ipintoint.py

def ip_into_int(ip):
    return reduce(lambda x,y:(x<<8)+y,map(int,ip.split('.')))

def is_same_network(ip, network):
    network = network.split('/')
    mask = ~(2**(32-int(network[1])) - 1)
    return (ip_into_int(ip) & mask) == (ip_into_int(network[0]) & mask)

if __name__ == '__main__':
    print is_same_network('2.245.38.1', '219.245.32.0/20')
    print ip_into_int('1.1.1.1')

還沒搞太明白,程序已經可以用了,先記錄下來。

原理:先把 192.168.1.13 變成16進制的 c0.a8.01.0d ,再去了“.”后轉成10進制的 3232235789 即可。

可以直接ping 3232235789

*******************************我是分割線**********************************

在工作中需要將ip地址從整數(shù)(如168442432)到以點號分隔的字符串類型(如10.10.58.64)之間的轉換,或者反過來從字符串到整數(shù)的轉換。這個轉換可以使用的方式很多,例如,linux下的C語言編程,調用inet_aton等函數(shù)就可以方便的實現(xiàn)(參考man inet_aton)。不過,腳本語言可以提供更加快速的方式實現(xiàn),在python中,如下:

首先:
import socket
import struct

字符串到整數(shù)的轉換:
socket.ntohl(struct.unpack('i',socket.inet_aton("10.10.58.64"))[0])

更新版,結果都為正整數(shù),前面這個當結果ip地址為128.0.0.0及其以上時,結果會表示為負數(shù)。
struct.unpack('I',struct.pack('i',(socket.ntohl(struct.unpack('i', socket.inet_aton("201.119.123.249"))[0]))))[0]

整數(shù)到字符串的轉換:
socket.inet_ntoa(struct.pack('i',socket.htonl(980942848 )))

各個函數(shù)的功能可以參考python的文檔,例如:
>>> help(struct.pack)
pack(fmt, *args)
    Return string containing values v1, v2, ... packed according to fmt.
    See struct.__doc__ for more on format strings.
  
更詳細的可以參考python documentation,有聯(lián)機版的,也有脫機版的,在windows安裝python2.5時還附帶chm的文檔。

*******************************我是分割線**********************************

很多程序需要對用戶IP范圍進行限制,如果使用直接IP地址方式對比的話性能很不好,通常是將IP地址轉換為整數(shù),類似“2130706433”這樣,這個數(shù)字就是代表“127.0.0.1”這個IP地址,下面是利用腳本進行計算

1)將IP轉換為整數(shù):

#!/bin/sh

if [ $# -eq 0 ];then
 echo ” Usage: ip2int.sh ip”
 exit
fi
a=`echo $1|cut -d/. -f1`
b=`echo $1|cut -d/. -f2`
c=`echo $1|cut -d/. -f3`
d=`echo $1|cut -d/. -f4`

itip=`expr  $a /* 256 /* 256 /* 256 + $b /* 256 /* 256 + $c /* 256 + $d `
echo $itip

 2)將整數(shù)轉換為IP:

#!/bin/sh

if [ $# -eq 0 ];then
 echo ” Usage: int2ip.sh IntNum”
 exit
fi

itip=$1

a=$(($itip/256/256/256));
b=$(($itip/256/256-$a*256));
c=$(($itip/256-$a*256*256-$b*256));
d=$(($itip-a*256*256*256-$b*256*256-$c*256));
echo $a”.”$b”.”$c”.”$d;

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
python strip() 函數(shù)和 split() 函數(shù)的詳解及實例
加入一個組播組
ip地址轉換成整數(shù)
Python獲取本地mac地址、主機名、IP地址
socket編程結構體變量(轉)
字符串轉換成地址
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服