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

  免費注冊 查看新帖 |

Chinaunix

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

求腳本(給定IP地址和位數(shù),遍歷出可用IP地址) [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-03-12 19:55 |只看該作者 |倒序瀏覽
需要一段function,用于根據(jù)給定的IP地址和位數(shù),返回可用的IP地址,例如:
傳遞參數(shù)為192.168.1.0/24,能夠得到數(shù)組a,a里面是192.168.1.1-192.168.1.254
192.168.1.128/25,得到的是數(shù)組a是192.168.1.129-192.168.1.254


請廣大awk高手不吝賜教

論壇徽章:
0
2 [報告]
發(fā)表于 2010-03-12 20:21 |只看該作者
看不懂。那個數(shù)組a是不是要輸出的東西?

如果原來就有數(shù)據(jù),那么初始值是192.168.1.X。其中x=1~254么?

要求得到的最后結果又是什么?

論壇徽章:
1
巨蟹座
日期:2014-06-04 13:33:30
3 [報告]
發(fā)表于 2010-03-12 20:30 |只看該作者
perl

論壇徽章:
0
4 [報告]
發(fā)表于 2010-03-12 21:07 |只看該作者
$ cat ip.pl
  1. #!/usr/bin/perl
  2. use strict;
  3. use Net::CIDR::Set;

  4. my $cidr = shift || die "$0 x.x.x.x/x\n";
  5. my $set = Net::CIDR::Set->new($cidr);
  6. print $set->as_range_array(2),"\n";
復制代碼
$ perl ip.pl 192.168.1.0/24
192.168.1.0-192.168.1.255

論壇徽章:
0
5 [報告]
發(fā)表于 2010-03-12 22:00 |只看該作者
Net::CIDR::Set---是不是需要手動安裝一個庫?如何查詢得到這個庫的名字?

論壇徽章:
0
6 [報告]
發(fā)表于 2010-03-13 09:21 |只看該作者
看不懂。那個數(shù)組a是不是要輸出的東西?

如果原來就有數(shù)據(jù),那么初始值是192.168.1.X。其中x=1~254么?
...
laohuanggua 發(fā)表于 2010-03-12 20:21



   不好意思,我沒說清楚
比如我求的腳本是function getip(ip)
那么我在bash中使用getip(192.168.1.0/24),能給我返回一個數(shù)組a,這個數(shù)組a里面是(192.168.1.1,192.168.1.2,192.168.1.3,192.168.1.4......,192.168.1.254)這種的
使用getip(192.168.1.1/25),返回的數(shù)組a是(192.168.1.1,192.168.1.2,192.168.1.3,192.168.1.4......,192.168.1.126)
還請不吝賜教

論壇徽章:
0
7 [報告]
發(fā)表于 2010-03-13 09:22 |只看該作者
$ cat ip.pl$ perl ip.pl 192.168.1.0/24
192.168.1.0-192.168.1.255
蘭花仙子 發(fā)表于 2010-03-12 21:07



    十分感謝您的回復,但是我對perl實在不熟,這邊也沒有perl的環(huán)境,實在不好意思,我求個bash shell吧
再次感謝您的賜教

論壇徽章:
0
8 [報告]
發(fā)表于 2010-03-13 09:54 |只看該作者
PERL的斑竹都來啦呵呵~ CUER都是熱心腸啊~

論壇徽章:
0
9 [報告]
發(fā)表于 2010-03-13 11:45 |只看該作者
#!/bin/bash

ip=$1
NK=`echo $ip | awk -F\/ '{print $2}'`
IP_LAST=`echo $ip | awk -F\/ '{print $1}' | awk -F\. '{print $4}'`

if ($IP_LAST -le 12;then
        NUM=$(($((2**$((32-$NK))))-2))
else
        NUM=254
fi

for i in `seq $(($IP_LAST+1)) $NUM`
    do
        echo 192.168.1.$i
    done

將輸出賦值給數(shù)組,但是這只針對c網(wǎng)的,對子網(wǎng)劃分,知道的不多。

論壇徽章:
0
10 [報告]
發(fā)表于 2010-03-13 12:45 |只看該作者
cpan
> install Net::CIDR::Set

perl壞境還是很好用的..
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP