1

In a shellscript, I'd like to set the IP of my box, run a command, then move to the next IP. The IPs are an entire C block.

The question is how do I set the IP of the box without editing a file? What command sets the IP on Slackware?

Thanks

4

4 回答 4

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
于 2008-09-16T18:07:43.807 回答
0

它应该是这样的:ifconfig eth0 192.168.0.42 up

用你网卡的网络接口替换eth0,显然ip地址适应你的需要,up只需要一次,但如果你每次运行它也没有什么坏处。

于 2008-09-16T16:09:16.510 回答
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 数据包实际上可以传送到任何目的地。

于 2008-09-16T16:11:25.147 回答
0

在一行中,例如: ifconfig eth0 192.168.10.12 netmask 255.255.255.0

于 2008-10-21T04:10:36.287 回答