
watch cat /proc/net/dev
看下哪张网卡的流量变化大一般就是哪张网卡是在线使用的
网卡禁用启用要确定在线服务的网卡下,免得把服务器给断网了
ifup eth1 激活eth1网卡
ifdown eth1 关闭eth1网卡
如果要完全禁用网卡
vi /etc/sysconfig/network-scripts/ifcfg-eth1
onboot=NO系统学习Linux,详情参考《Linux就该这么学》。
1,打开电脑的浏览器,进入浏览器主界面中,在地址栏中输入路由器管理地址。
2,接着,在d出的窗口中输入路由器的账号密码。
3,在窗口中左侧选择“运行状态”选项,点击打开。
4,最后,即可在窗口中看到SSID选项,即电脑的本机网卡名称,问题解决。
有时候,写程序的时候需要获取计算机的网络信息,比如IP地址、电脑名称、DNS等信息。IP地址和电脑名称是比较容易获取到的,而要想获取地址掩码、DNS、网关等信息就有些麻烦了。在Windows下我们一般都是通过从注册表读取这些信息。在Linux怎么做呢?其实,Linux下更加容易一些。因为我们可以拿现成的程序看它的源代码。通过阅读其源代码找到解决该问题的方法。那么,看哪个程序的源代码呢?如果你使用过Linux,并且比较熟悉的话就肯定知道一个命令ifconfig。这个命令和Windows下的ipconfig差不多,都可以输出网卡的信息,其中就包含DNS、掩码等信息。所以,我们可以通过看它的源代码来找到解决该问题的方法。获取系统中的网卡数量 并没有那个系统调用提供网卡数量的获取。但是,我们可以通过强大的proc文件系统获取网卡数量的信息。实际上,ifconfig也是这样做的,请看示例代码如下:0001 #include <stdioh>0002 #include <stringh>0003 #include <errnoh>0004 0005 int GetNetCardCount()0006 {0007 int nCount = 0;0008 FILE f = fopen("/proc/net/dev", "r");0009 if (!f)0010 {0011 fprintf(stderr, "Open /proc/net/dev failed!errno:%d\n", errno);0012 return nCount;0013 }0014 0015 char szLine[512];0016 0017 fgets(szLine, sizeof(szLine), f); 0018 fgets(szLine, sizeof(szLine), f);0019 0020 while(fgets(szLine, sizeof(szLine), f))0021 {0022 char szName[128]= {0};0023 sscanf(szLine, "%s", szName);0024 int nLen = strlen(szName);0025 if (nLen <= 0)continue;0026 if (szName[nLen - 1] == ':') szName[nLen - 1]= 0;0027 if (strcmp(szName, "lo") == 0)continue;0028 nCount++;0029 }0030 0031 fclose(f);0032 f= NULL;0033 return nCount;0034 }0035 0036 int main(int argc, char argv[])0037 {0038 printf("NetCardCount: %d\n", GetNetCardCount());0039 return 0;0040 }获取IP、掩码、MAC及网关获取IP、掩码、MAC和广播地址是比较容易的,只需要调用对应的IOCTL即可。只是大家对Linux下的IOCTL可能不太熟悉。却看示例代码: 0001 void DispNetInfo(constchar szDevName)0002 {0003 int s = socket(AF_INET, SOCK_DGRAM, 0);0004 if (s < 0)0005 {0006 fprintf(stderr, "Create socket failed!errno=%d", errno);0007 return;0008 }0009 0010 struct ifreq ifr;0011 unsignedchar mac[6];0012 unsignedlong nIP, nNetmask, nBroadIP;0013 0014 printf("%s:\n", szDevName);0015 0016 strcpy(ifrifr_name, szDevName);0017 if (ioctl(s, SIOCGIFHWADDR, &ifr) < 0)0018 {0019 return;0020 }0021 memcpy(mac, ifrifr_hwaddrsa_data, sizeof(mac));0022 printf("\tMAC: x-x-x-x-x-x\n",0023 mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);0024 0025 strcpy(ifrifr_name, szDevName);0026 if (ioctl(s, SIOCGIFADDR, &ifr) < 0)0027 {0028 nIP = 0;0029 }0030 else0031 {0032 nIP =(unsignedlong)&ifrifr_broadaddrsa_data[2];0033 }0034 printf("\tIP: %s\n", inet_ntoa((in_addr)&nIP));0035 0036 strcpy(ifrifr_name, szDevName);0037 if (ioctl(s, SIOCGIFBRDADDR, &ifr) < 0)0038 {0039 nBroadIP = 0;0040 }0041 else0042 {0043 nBroadIP =(unsignedlong)&ifrifr_broadaddrsa_data[2];0044 }0045 printf("\tBroadIP: %s\n", inet_ntoa((in_addr)&nBroadIP));0046 0047 strcpy(ifrifr_name, szDevName);0048 if (ioctl(s, SIOCGIFNETMASK, &ifr) < 0)0049 {0050 nNetmask = 0;0051 }0052 else0053 {0054 nNetmask =(unsignedlong)&ifrifr_netmasksa_data[2];0055 }0056 printf("\tNetmask: %s\n", inet_ntoa((in_addr)&nNetmask));0057 close(s);0058 } 那么如何获取网关地址呢?更加容易,但是,好像很少有人知道。反正我在网上没有找到有人知道。最后看了nslookup的源代码以后才知道正确的做法。代码如下: res_init(); for (int i = 0; i < _resnscount; i++) { struct sockaddr server = (struct sockaddr)&_resnsaddr_list[i]; printf("Server: %s\n", inet_ntoa((in_addr)&(server->sa_data[2]))); }代码很简单,就不做解释了。 怎么获取网关呢?这个稍微有点麻烦一些,不过和获取网卡数量相似,都是通过proc文件系统。这次分析的/proc/net/route文件。我就不再贴出示例代码了。最后,我把运行示例程序获取到的信息附上,以供大家有个直观的认识:eth0: MAC: 08-00-27-98-bf-f3 IP: 1921681106 BroadIP: 255255255255 Netmask: 2552552550Gateway: 19216811eth1: MAC: 08-00-27-16-f4-bf IP: 1921681108 BroadIP: 1921681255 Netmask: 2552552550Gateway: 0000eth2: MAC: 08-00-27-37-9c-91 IP: 0000 BroadIP: 0000 Netmask: 0000Gateway: 0000eth3: MAC: 08-00-27-5a-d2-39 IP: 0000 BroadIP: 0000 Netmask: 0000Gateway: 0000NetCardCount: 4DNS 0: 21821351DNS 1: 61147371
通常,linux系统启动的时候当加载网卡的时候,会产生一条日志信息写道/var/log/messages或者dmesg里面,这里面就有比较详细的网卡信息,包括版本号码等。
也可以采用命令查询,如: lspci -vvv # 找到网卡设备的详细信息,包括网卡驱动 # lsmod 列出加载的所有驱动,包括网卡驱动; modifo # 其中包含version信息。
inux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数。这个问题用到两个命令 ifconfig vim。
Vim能够得到广大厂商与众多用户的认可,原因就是在Vim编辑器中内设有的三种模式——命令模式、末行模式和编辑模式,每种模式分别又支持多种不同的命令快捷键组合,大大的提高了工作效率,用习惯后会觉得非常的顺手。而要想在文本 *** 作时更加高效率,就必须先搞清Vim编辑器的三种模式的 *** 作不同与切换方法,如图所示。
命令模式:控制光标移动,可对文本进行删除、复制、粘贴和查找等工作。
输入模式:正常的文本录入。
末行模式:保存、退出与设置编辑环境。
第1步:首先要切换到"/etc/sysconfig/network-scripts"目录中(该目录存放着网卡的配置文件)。
第2步:使用vim编辑器修改网卡文件"ifcfg-eno16777736",逐项写入配置参数并保存退出,网卡默认名称请通过ifconfig命令自行确认。
设备类型:TYPE=Ethernet
地址分配模式:BOOTPROTO=static
网卡名称:NAME=eno16777736
是否启动:ONBOOT=yes
IP地址:IPADDR=1921681010
子网掩码:NETMASK=2552552550
网关地址:GATEWAY=192168101
DNS地址:DNS1=192168101
第3步:重启网卡设备并测试网络是否联通。
进入到网卡配置文件所在的目录,然后编辑网卡配置文件填入下面的信息:
[root@redhat ~]# cd /etc/sysconfig/network-scripts/[root@redhat network-scripts]# vim ifcfg-eno16777736TYPE=Ethernetlinuxprobe/com/chapter-04/htmlBOOTPROTO=staticNAME=eno16777736ONBOOT=yesIPADDR=1921681010NETMASK=2552552550GATEWAY=192168101DNS1=192168101
执行重启网卡设备的命令,正常情况不会有提示信息,然后通过ping命令测试网络能否联通。
[root@redhat network-scripts]# systemctl restart network
以上就是关于查看linux 系统 当前使用的网卡全部的内容,包括:查看linux 系统 当前使用的网卡、如何查看本机网卡名称、Linux下如何获取网卡信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)