当前位置: 技术问答>linux和unix
双网卡发送IP包的问题(高分)
来源: 互联网 发布时间:2015-04-18
本文导语: 机器上有两个网卡,其ip地址分别为192.168.1.100和192.168.2.100。现想完成这样一件工作:通过192.168.1.100这张网卡发送一个ip包,经过一个路由器转发以后由192.168.2.100这张网卡接收这个ip包。发送时将系统的环回借口关闭...
机器上有两个网卡,其ip地址分别为192.168.1.100和192.168.2.100。现想完成这样一件工作:通过192.168.1.100这张网卡发送一个ip包,经过一个路由器转发以后由192.168.2.100这张网卡接收这个ip包。发送时将系统的环回借口关闭,防止自发自收。
现在的问题是:192.168.1.100根本就无法目的地为192.168.2.100的数据包发送出去。请问:应该在程序中做什么工作才能将数据发送出去?
分不够可以再加。
现在的问题是:192.168.1.100根本就无法目的地为192.168.2.100的数据包发送出去。请问:应该在程序中做什么工作才能将数据发送出去?
分不够可以再加。
|
试一试使用底层的发包工具函数,如libnet之类,指定数据包发出的接口(如eth0)。
|
可以这样试一下:
将用来发送的socket bind到192.168.1.100(客户端是可以bind的),然后发送;
如不成功,在上面基础上设置套接字选项SO_DONTROUTE,再试,若不行.....libnet应该可以吧.
将用来发送的socket bind到192.168.1.100(客户端是可以bind的),然后发送;
如不成功,在上面基础上设置套接字选项SO_DONTROUTE,再试,若不行.....libnet应该可以吧.
|
设置网关指向你的路由器啊
|
现在的路由是什么样?
|
试试用bind绑定2.100然后接收。