root@uitnode2 ~ 0 # ls -l /sys/class/net/eth0/device/driver/module
lrwxrwxrwx 1 root root 0 Nov 17 20:28 /sys/class/net/eth0/device/driver/module ->../../../../module/e1000
root@uitnode2 ~ 0 # readlink -f /sys/class/net/eth0/device/driver/module
/sys/module/e1000
sysfs虚拟文件系统下有很多链接, /sys/class/net/eth0 是一个目录,底下有一个device是符号链接,会指向 /sys/devices/ 下的一个真实设备,它所指向的目录下又有一个 driver 指向 /sys/module/ 下一个模块名,那就是所使用的驱动程序名。
不过sysfs在最近一系列内核中变化很大,我看到的是2.6.26.2内核,在旧版内核上不一定都有。
root@uitnode2 ~ 0 # uname -a
Linux uitnode2.uit 2.6.26 #2 SMP Tue Sep 2 02:06:17 HKT 2008 x86_64 x86_64 x86_64 GNU/Linux
方法二: dmesg 大法
最全面的要属dmesg了,基本上启动时每个设备的初始化信息都会记录在里面,所以,看这个就可以了。
另外就是
cat /proc/cpuinfo 这是看cpu的详细信息
cat /proc/meminfo 这是看内存的详细信息
不过,仍然达不到cpuz那么详细的程度,不过cpuz是专门干这个的,应该是从bios中获得的信息(或者根据cpu的型号事先统计出来的信息),只要将cpuz移植到linux,应该也具有这种能力了
方法三:ethtool
执行
# ethtool -p eth0
时,eth0对应的网口的灯就会闪烁,你可以分别调用ethtool判断eth1,eth2对应的网口;
注意要在不插网线的时候进行,否则看不出来是否因ethtool引起的闪烁;
这个方法是在 "Redhat Magzine" (红帽杂志)上看到的;管理多网口服务器的一个有效的方法;
需要解决更多linux问题,详情请看 http://www.linuxprobe.com/chapter-00.html
望采纳
1、第一步在电脑上打开xshell,建立连接,输入主机名,用户名和密码,如下图所示:
2、第二步可以看到已经远程连接到linux系统服务器了,如下图所示:
3、第三步输入“ifconfig -a”命令,来查看linux系统ip,如下图所示:
4、第四步按回车键之后,可以查看到linux系统的ip地址,在eth0的下方inet旁边就是内网ip地址,如下图所示:
5、第五步也可以看一下按回车键的信息,eth0是网卡名称,lo是本地环回接口,netmask是本机掩码,如下图所示:
原理上只有 raw_socket 应该设置网口,正常的 socket 会根据路由来选择出口。
如果需要指定网口,需要设置 SO_BINDTODEVICE,步骤如下:
填写结构体 struct ifreq ifr 的 ifr.ifr_name 为指定的网口,如 "eth1"
setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, (void *)&ifr, sizeof(ifr))
另外,如果只是需要进行测试,不防直接构包,用 libpcap 等库来进行发送。而不要用系统的 socket 库来发送。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)