求教:
1,我想通过套接字在L2层发送广播,可我的ethernet包好像组的有问题,尤其是源地址和目的地址(广播),赋值不成功,总是出错,应该怎么做才好?最好不用自己手动填写本机的物理地址。
2,源地址和目的地址是不是应该转成网络字节序,可是我只知道怎么转IP地址,MAC地址改怎么转?
我的代码:
#include
by
apple_7095
-
Linux环境编程
-
2008-08-21 14:47:38 阅读(3787) 回复(0)
socket系列函数中能不能获取指定网卡的IP地址?我的机器有2个网卡,eth0,eth1, 我想获取其中一个配置的IP地址。 是不是只能读取某个配置文件?我记得不同发行版本中网络相关的配置文件差别挺大……
os:armlinux-2.4.27 arm-gcc version:3.4.1 用ping测试,pcap库同样抓不到, 只能抓到对方ping包,抓不到本机的echo包 arm_linux#ifconfig eth0 eth0 Link encap:ethernet HWaddr 00:17:7B:00:00:C0 inet addr:192.168.15.23 Bcast:192.168.15.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:188014 errors:0 dropped:23 overruns:0 frame:0 ...
linux环路发送数据包(如图): |---------------| | linux | |---------------| eth0 eth1 | | | | V V |---------------| | router | ----------------- 有什么办法能从eth0发送目标地址是eth1接口IP地址的数据; 假设eth0_ip = 192.168.0.2、eth1_ip = 192.168.1.2,数据包IP头部为: 源IP:192.168.0.2 目标IP:192.168.1.2
raw socket发送数据包的问题 最近我使用raw socket编写一个简单的port sniffer,可是发现一个问题。 int sock = socket(PF_INET,socket_raw,IPPROTOCOL_TCP); ... ... setsockopt(sock,.......); 我自己组装tcp和ip数据包,发送出去,我也能接受到回复的数据包,但是出现了一个我不理解的地方。 当我向自己发送的时候(127.0.0.1),发送出去的seq=1234,我接收回来的数据包,seq=0,ack seq就等于ack_seq=seq+data_len+1,而且接...
eth0 Link encap:ethernet HWaddr 00:0C:29:0D:2A:2F inet addr:10.0.0.10 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe0d:2a2f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2038 errors:0 dropped:0 overruns:0 frame:0 TX packets:4072 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 t...
eth0 Link encap:ethernet HWaddr 00:0C:29:0D:2A:2F\r\n inet addr:10.0.0.10 Bcast:10.0.0.255 Mask:255.255.255.0\r\n inet6 addr: fe80::20c:29ff:fe0d:2a2f/64 Scope:Link\r\n UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1\r\n RX packets:2038 errors:0 dropped:0 overruns:0 frame:0\r\n TX packets:4072 errors:0 dropped:0 overruns:0 carrier:0\r\n ...