在一个shellcript中,我想设置我的盒子的IP,运行一个命令,然后移动到下一个IP。 IP是整个C块。
问题是如何在不编辑文件的情况下设置盒子的IP?什么命令设置Slackware上的IP?
由于
答案 0 :(得分:2)
如其他答案所述,您可以使用ifconfig命令或ip命令。 ip是一个更强大的命令,我更喜欢使用它。一个完整的脚本循环通过一个完整的C类子网添加IP,做东西,然后删除它。请注意,它不使用.0或.255,它们是子网的网络和广播地址。此外,当使用ip命令添加或删除地址时,最好也包括掩码宽度(地址末尾的/ 24)。
#!/bin/bash
SUBNET=192.168.135.
ETH=eth0
for i in {1..254}
do
ip addr add ${SUBNET}${i}/24 dev ${ETH}
# do whatever you want here
ip addr del ${SUBNET}${i}/24 dev ${ETH}
done
答案 1 :(得分:0)
应该是:ifconfig eth0 192.168.0.42 up
通过网卡的网络接口替换eth0,显然可以根据需要调整ip地址,只需要一次,但每次运行时都不会受到影响。
答案 2 :(得分:0)
我不太了解Slackware,我上次在十多年前使用它。但是,任何主流Linux发行版都应该有'ifconfig'程序或'ip'程序或两者兼而有之。您将需要拥有root权限,因此要么成为root(例如su),要么如果您知道如何使用'sudo'程序。我们先用'ip'来做。
ip addr add 10.1.2.3 dev eth0
将设备eth0(通常是主要有线网络适配器)设置为IP地址为10.1.2.3。完成后,您可以再次从该适配器中删除该地址......
ip addr del 10.1.2.3 dev eth0
ifconfig的工作方式略有不同,
ifconfig eth0 10.1.2.3 netmask 255.255.255.0
再次设置设备eth0,IP地址为10.1.2.3
根据您想要的这些地址,您可能还需要知道如何设置手动路由,以便您的IP数据包实际上可以在任何地方传送。
答案 3 :(得分:0)
在一行中,例如:ifconfig eth0 192.168.10.12 netmask 255.255.255.0