亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 6718 | 回復(fù): 8
打印 上一主題 下一主題

懇求一IP地址段轉(zhuǎn)換算法函數(shù) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2006-04-21 23:32 |只看該作者 |倒序瀏覽
懇求一IP地址段轉(zhuǎn)換算法函數(shù)(SHELL調(diào)用)
我的程序太差,麻煩高人指點,謝謝!

函數(shù)的參數(shù)是這樣的202.101.0.0-202.102.255.255格式.
要求是這樣的.

將202.101.0.0-202.102.255.255這樣的地址范圍轉(zhuǎn)換成202.101.0.0/15這樣的帶掩碼的網(wǎng)段.
過程是這樣的.
先202.101.0.0-202.102.255.255
第一位進行減202(后面)-202比較等于0記錄A,
第二位進行減102(后面)-101比較等于1記錄B,
第三位進行減255(后面)-0等于255記錄C,
第四位進行減255(后面)-0等于255記錄D,
然后將(A+1)(B+1)(C+1)(D+1)-2再轉(zhuǎn)換成2進制,再讀出一共多少位,再用32 -位數(shù),就出來了后面的15
謝謝!

[ 本帖最后由 ability 于 2006-4-21 23:34 編輯 ]

論壇徽章:
0
2 [報告]
發(fā)表于 2006-04-22 00:35 |只看該作者
感覺有點問題

202.101.0.0/15的IP段應(yīng)該是202.100.0.0-202.101.255.255

這兩個IP段沒辦法用掩碼表示

202.100.0.0/15=202.101.0.0/15

能不能把具體的例子舉出來呢?

還有,掩碼中如果前面那一位不是255,接下去的那幾位肯定是0,比如255.254.0.0,254.0.0.0,所以下面幾位不用加于判斷了

論壇徽章:
0
3 [報告]
發(fā)表于 2006-04-22 01:05 |只看該作者
原帖由 zmkun 于 2006-4-22 00:35 發(fā)表
感覺有點問題

202.101.0.0/15的IP段應(yīng)該是202.100.0.0-202.101.255.255

這兩個IP段沒辦法用掩碼表示

202.100.0.0/15=202.101.0.0/15

能不能把具體的例子舉出來呢?

還有,掩碼中如果前面那一位不是 ...

謝謝!
舉個例子大概說明程序的意思,沒有精確去算這個是否對,錯了還請包含,我的目的是求一個函數(shù)的寫法,麻煩SHELL高手指教一下謝謝

論壇徽章:
0
4 [報告]
發(fā)表于 2006-04-22 09:27 |只看該作者
  1. awk -F "[.-]" 'BEGIN{
  2. i=1;a=1
  3. }
  4. {
  5. while(i<=4){a*=$(i+4)-$i+1;i++}
  6. }
  7. END{
  8. f=sprintf("%o",a-2)
  9. while(f/10>1){w+=3;f/=10}
  10. if(f>4)w+=3;else {if(f>2)w+=2;else w+=1}
  11. print $0"/"32-w
  12. }' bb
復(fù)制代碼

寫的有點亂。

論壇徽章:
0
5 [報告]
發(fā)表于 2006-04-22 22:49 |只看該作者
謝謝!

論壇徽章:
1
榮譽會員
日期:2011-11-23 16:44:17
6 [報告]
發(fā)表于 2006-04-23 00:36 |只看該作者
我記得netman的精華里有類似的解決方案

論壇徽章:
0
7 [報告]
發(fā)表于 2009-05-20 15:28 |只看該作者

回復(fù) #6 寂寞烈火 的帖子

他倆說的不是一回事

論壇徽章:
0
8 [報告]
發(fā)表于 2009-05-20 17:30 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽

論壇徽章:
0
9 [報告]
發(fā)表于 2009-05-20 17:57 |只看該作者
我不做數(shù)通很多年,你的算法太麻煩,我用B類IP地址給你舉個例子,你自己修改一下我覺得行

#! /bin/bash
function cal
{
        ip1=$(echo $1|cut -d. -f2)
        ip2=$(echo $2|cut -d. -f2)
        value=$(($ip2-$ip1))
        case $value in
        1)
        echo $1"/"15
        ;;
        3)
        echo $2"/"14
        ;;
        *)
        echo "error"
        esac
}
cal $1 $2


運行結(jié)果
-bash-3.2$ ./liang.sh 202.101.0.0 202.102.255.255
202.101.0.0/15
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP