当前位置: 技术问答>linux和unix
Linux下如何进行多网卡编程?
来源: 互联网 发布时间:2015-12-06
本文导语: 我的Linux(2.6)机器配有两块网卡,一块网卡的IP是192.168.1.6,另一网卡的IP是202.120.211.109,也就是说两张网卡分别属于不同的网络,前者是内网,后者是外网。接下去我要编写网络应用程序(服务器),使得能够分别...
我的Linux(2.6)机器配有两块网卡,一块网卡的IP是192.168.1.6,另一网卡的IP是202.120.211.109,也就是说两张网卡分别属于不同的网络,前者是内网,后者是外网。接下去我要编写网络应用程序(服务器),使得能够分别接受内网和外网的网络连接。请问大侠们:如何才能够得到系统中的两张网卡的信息(包括它的配置信息),如何才能够分别设置接受从不同网卡那来发来的连接?给出示例代码最好了,谢谢了。如果没有代码,告诉我哪个网址有资料什么的都可以。都会给分的,谢谢了。
|
这个是我的ifconfig的输出:
eth0 Link encap:Ethernet HWaddr 00:50:04:BC:FE:5B
inet addr:192.168.0.77 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::250:4ff:febc:fe5b/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:54916 errors:217 dropped:0 overruns:0 frame:217
TX packets:17331 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:6164754 (5.8 Mb) TX bytes:2336450 (2.2 Mb)
Interrupt:11 Base address:0xc400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:98 errors:0 dropped:0 overruns:0 frame:0
TX packets:98 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8236 (8.0 Kb) TX bytes:8236 (8.0 Kb)
eth0 Link encap:Ethernet HWaddr 00:50:04:BC:FE:5B
inet addr:192.168.0.77 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::250:4ff:febc:fe5b/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:54916 errors:217 dropped:0 overruns:0 frame:217
TX packets:17331 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:6164754 (5.8 Mb) TX bytes:2336450 (2.2 Mb)
Interrupt:11 Base address:0xc400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:98 errors:0 dropped:0 overruns:0 frame:0
TX packets:98 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8236 (8.0 Kb) TX bytes:8236 (8.0 Kb)
|
简单,自己弄一个配置文件,里面维护了你的IP
还可以指定默认的,多好
还可以指定默认的,多好
|
使用bind()函数指明IP。
|
服务器可以绑定网卡的IP的
|
在proc/net/底下的tcp和udp会缓存当前的链接信息,针对某个网卡等等,可以从这提取相关的连接信息