全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1577
推到 Plurk!
推到 Facebook!

IP個數怎麼計算?

答題得分者是:wu-eric
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-07 23:36:06 IP:211.22.xxx.xxx 未訂閱
各位先進,因為本人管理網路,有需求掃瞄網路上的機器,因此想要設計一個掃瞄函數,但是不知道如何以數學的算法計算出IP數量,例如我要計算出 192.168.10.100 - 192.168.100.100 中間有幾個IP怎麼算?又單一IP的累進怎麼算(意即192.168.10.100累進加1後,變成192.168.10.101的算法怎麼寫)?那又累加後如果跨網段時怎麼算?謝謝!
wyndog
資深會員


發表:7
回覆:362
積分:348
註冊:2004-10-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-08 09:29:12 IP:60.248.xxx.xxx 未訂閱
IP 就是一組 4個 bytes 的數字啊 像這個 192.168.10.100 就看成 4 個數字 192、168、10、100 就好了 既然是 byte 的話,它的範圍就是 0~255 囉 那麼,192.168.10.100 ~ 192.168.11.100 就是有 256 個 IP 所以 192.168.10.100 ~ 192.168.100.100 就是有 (100 - 10) * 256 = 90 * 256 = 23040 這麼多 IP 所以 192.168.10.100 累加 1 就是加到最後一位的 100 就行了 就 = 192.168.10.101 如果是 192.168.10.255 累加 1 的話,就當作是進位,進到前面去 就 = 192.168.11.0
chunglin
一般會員


發表:8
回覆:8
積分:3
註冊:2005-02-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-08 11:38:59 IP:61.221.xxx.xxx 未訂閱
Stallion 您好:    提供以下方式給您參考    請加入標頭檔 winsock.h 或 winsock2.h    
DWORD RangeCount = htonl(inet_addr("192.168.100.100")) - 
                   htonl(inet_addr("192.168.10.100"));
創作需要無限的想像。
wu-eric
中階會員


發表:14
回覆:82
積分:64
註冊:2004-03-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-08 11:43:37 IP:210.66.xxx.xxx 未訂閱
我想做法如下 1.把第一個IP及第二個IP皆換為16進制 2.把第二個16進制減第一個16進制 1 例192.168.10.100 至 192.168.100.100 C0A86464 - C0A80A64 = 5A00 1 => 23041 3.IP的累進一樣把ip轉為16進制後加1再轉為ip型態 PS:10進制轉16進制如下 192=>C0,168=>A8,100=>64,10=>0a
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-09 13:09:58 IP:211.22.xxx.xxx 未訂閱
謝謝chunglin及wu-eric兄,但wu-eric兄的說明比較適合我的需求。
系統時間:2024-05-05 19:29:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!