- 论坛徽章:
- 1
|
自動產生 電信(CHINANET)/網通(CNCGROUP) IP 列表
joecon 感謝您的糾正,的確,問題主因是貼上來時,換行沒有處理好所致
另外, 如果一個數字是 256, 想知道它是2的 N 次方
但 bc 並沒有 log function , 所以要自己算
- mask=$(cat << EOF | bc | tail -1
- # prefix, 從 32 來減
- pow=32;
- # log function base 2
- define log2(x) {
- # 小於等於1就回傳,如果一開始x 是 256 , 那會回傳 1 2 3 4 5 6 7 8 (數字
- # 間的空白有換行,但我們只要 8 這個數字,所以會有 tail -1 的需要
- if (x<=1) return (pow);
- pow--;
- return(log2(x/2));
- }
- log2($cnt)
- EOF
- )
复制代码
所以,bc 用處主要在處理, 像 65536 是 2^N 次方中的這個 N 為何
而 mask (prefix) 也就為 32-N 的值了
另外,美國的 ip 要到 ARIN 查,
http://www.arin.net/whois 或
ftp://ftp.arin.net/
歐洲的到 RIPE 等等
我的 shell 檔則放在
http://211.72.210.251/images/cn_isp.sh |
|