Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

linux sock_rawԭʼÌ×½Ó×Ö±à³Ì

from:http://blog.chinaunix.net/u2/62281/showart_1096746.html
sock_rawԭʼÌ×½Ó×Ö±à³Ì¿ÉÒÔ½ÓÊÕµ½±¾»úÍø¿¨ÉϵÄÊý¾ÝÖ¡»òÕßÊý¾Ý°ü,¶ÔÓë¼àÌýÍøÂçµÄÁ÷Á¿ºÍ·ÖÎöÊǺÜÓÐ×÷ÓõÄ.Ò»¹²¿ÉÒÔÓÐ3ÖÖ·½Ê½´´½¨ÕâÖÖsocket
 
1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)·¢ËͽÓÊÕipÊý¾Ý°ü
2.socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP|ETH_P_ARP|ETH_P_ALL))·¢ËͽÓÊÕÒÔÌ«ÍøÊý¾ÝÖ¡
3.socket(AF_INET, SOCK_PACKET, htons(ETH_P_IP|ETH_P_ARP|ETH_P_ALL))¹ýʱÁË,²»ÒªÓð¡
 
Àí½âÒ»ÏÂSOCK_RAWµÄÔ­Àí, ±ÈÈçÍø¿¨ÊÕµ½ÁËÒ»¸ö 14+20+8+100+4 µÄudpµÄÒÔÌ«ÍøÊý¾ÝÖ¡.
 
Ê×ÏÈ,Íø¿¨¶Ô¸ÃÊý¾ÝÖ¡½øÐÐÓ²¹ýÂË(¸ù¾ÝÍø¿¨µÄģʽ²»Í¬»áÓв»Í¬µÄ¶¯×÷,Èç¹ûÉèÖÃÁËpromisc»ìÔÓģʽµÄ»°,Ôò²»×öÈκιýÂËÖ±½Ó½»¸øÏÂÒ»²ãÊä
ÈëÀý³Ì,·ñÔò·Ç±¾»úmac»òÕ߹㲥mac»á±»Ö±½Ó¶ªÆú).°´ÕÕÉÏÃæµÄÀý×Ó,Èç¹û³É¹¦µÄ»°,»á½øÈëipÊäÈëÀý³Ì.µ«ÊÇÔÚ½øÈëipÊäÈëÀý³Ì֮ǰ,ϵͳ»á¼ì²éϵ
ͳÖÐÊÇ·ñÓÐͨ¹ýsocket(AF_PACKET, SOCK_RAW,
..)´´½¨µÄÌ×½Ó×Ö.Èç¹ûÓеϰ²¢ÇÒЭÒéÏà·û,ÔÚÕâ¸öÀý×ÓÖоÍÊÇÐèÒªETH_P_IP»òÕßETH_P_ALLÀàÐÍ.ϵͳ¾Í¸øÃ¿¸öÕâÑùµÄsocket½ÓÊÕ»º
³åÇø·¢ËÍÒ»¸öÊý¾ÝÖ¡¿½±´.È»ºó½øÈëÏÂÒ»²½.
 
Æä´Î,½øÈëÁËipÊäÈëÀý³Ì(ip²ã»á¶Ô¸ÃÊý¾Ý°ü½øÐÐÈí¹ýÂË,¾ÍÊǼì²éУÑé»òÕß¶ªÆú·Ç±¾»úip»òÕ߹㲥ipµÄÊý¾Ý°üµÈ,¾ßÌåÒª²Î¿¼Ô´´úÂë),Àý×Ó
ÖоÍÊÇÈç¹û³É¹¦µÄ»°»á½øÈëudpÊäÈëÀý³Ì.µ«ÊÇÔÚ½»¸øudpÊäÈëÀý³Ì֮ǰ,ϵͳ»á¼ì²éϵͳÖÐÊÇ·ñÓÐͨ¹ýsocket(AF_INET,
SOCK_RAW,
..)´´½¨µÄÌ×½Ó×Ö.Èç¹ûÓеϰ²¢ÇÒЭÒéÏà·û,ÔÚÕâ¸öÀý×ÓÖоÍÊÇÐèÒªIPPROTO_UDPÀàÐÍ.ϵͳ¾Í¸øÃ¿¸öÕâÑùµÄsocket½ÓÊÕ»º³åÇø·¢ËÍÒ»¸öÊý¾Ý
Ö¡¿½±´.È»ºó½øÈëÏÂÒ»²½.
 
×îºó,½øÈëudpÊäÈëÀý³Ì ...
 
ps:Èç¹ûУÑéºÍ³ö´íµÄ»°,Äں˻áÖ±½Ó¶ªÆú¸ÃÊý¾Ý°üµÄ.¶ø²»»á¿½±´¸øsock_rawµÄÌ×½Ó×Ö,ÒòΪУÑéºÍ¶¼³ö´íÁË,Êý¾Ý¿Ï¶¨ÓÐÎÊÌâµÄ°üÀ¨ËùÓÐÐÅÏ¢¶¼Ã»ÓÐÒâÒåÁË.
 
½øÒ»²½·ÖÎöËûÃǵÄÄÜÁ¦.
1. socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
ÄÜ:¸ÃÌ×½Ó×Ö¿ÉÒÔ½ÓÊÕЭÒéÀàÐÍΪ(tcp udp icmpµÈ)·¢Íù±¾»úµÄipÊý¾Ý°ü,´ÓÉÏÃæ¿´µÄ¾ÍÊÇ20+8+100.
²»ÄÜ:²»ÄÜÊÕµ½·Ç·¢Íù±¾µØipµÄÊý¾Ý°ü(ipÈí¹ýÂ˻ᶪÆúÕâЩ²»ÊÇ·¢Íù±¾»úipµÄÊý¾Ý°ü).
²»ÄÜ:²»ÄÜÊÕµ½´Ó±¾»ú·¢ËͳöÈ¥µÄÊý¾Ý°ü.
·¢Ë͵ϰÐèÒª×Ô¼º×éÖ¯tcp udp icmpµÈÍ·²¿.¿ÉÒÔsetsockoptÀ´×Ô¼º°ü×°ipÍ·²¿
ÕâÖÖÌ×½Ó×ÖÓÃÀ´Ð´¸öping³ÌÐò±È½ÏÊʺÏ
     
2.


Ïà¹ØÎĵµ£º

linux pppoe

ÊÖÍ·Óиöep9315µÄ°å£¬½ñÌìͻȻÏëÆðÅÜÒ»ÏÂadslÉÏÍø¡£ÍíÉÏ»ØÀ´¾Í¿ªÊ¼¸ã¡£
´Ó10µãµ½ÏÖÔÚ£¬ÖÕÓÚÄܹ»ÅÜÆðÀ´¡£
¸ø´ó¼Ò½è¼øÒ»Ï¡£
1.±àÒëÄںˣ¬°ÑpppµÄÄÇЩѡÏîÑ¡ÉÏ¡£ (ÎÒÓÃ2.6.8.1µÄkernel£¬cirrus µÄpatch)
2.libpcap-0.9.1 Õâ¸ö°üÊÇpppdÐèÒªµÄ¡£
./configure CC=arm-linux-gcc CFLAGS=-msoft-float --target=arm-linu ......

xshellÁ¬½ÓlinuxÖÐÎÄÂÒÂë

ÍøÉϺܶàÌû×ÓÎÊxhellÁ¬½ÓlinuxÖÐÎÄÂÒÂ룬¾ø´ó²¿·ÖÊǽ«LANGÊôÐÔÖµÉèÖÃÓ¢ÎÄ£¬¼´export LANG=en_US.UTF-8;
µ«ÊÇÎÒÃǽ«ÏµÍ³ÉèÖÃΪÖÐÎÄ£¬µ±È»ÊÇÒòΪ×Ô¼ºÓÃÖÐÎÄ¿ÉÒÔÌá¸ßЧÂÊ£¬¼õÉÙ³ö´í¡£
ÕâÖÖ·½Ê½Ö»ÄÜÖα겻ÄÜÖα¾£¬Ï´ÎʹÓÃsshÁ¬linuxʱ»¹ÊÇ»áÂÒÂ룬
ÏÖÔÚ½«ÎÒ×Ô¼ºµÄ½â¾ö·½Ê½¹²Ïí¸ø´ó¼Ò¡£
±à¼­/etc/sysconfig/i18n
½«ÎļþÖе ......

Linux coreÎļþÉèÖÃ

ÔÚÒ»¸ö³ÌÐò±ÀÀ£Ê±£¬Ä¬ÈÏÇé¿öÏÂÊDz»²úÉúcoreÎļþ¡£
ÏÂÃæµÄÃüÁî¿ÉÒÔ¼ì²éÉú³ÉcoreÎļþµÄÑ¡ÏîÊÇ·ñ´ò¿ª:
$ulimit -a¸ÃÃüÁÏÔʾËùÓеÄÓû§¶¨ÖÆ£¬ÆäÖÐÑ¡Ïî-a´ú±í“all”¡£
$ulimit -c unlimitedÀ´ÈÃÌØ¶¨µÄÓû§¿ÉÒÔ²úÉúcoreÎļþ
coreÎļþ½ö½öÊÇÒ»¸öÄÚ´æÓ³Ïó(ͬʱ¼ÓÉϵ÷ÊÔÐÅÏ¢)£¬Ö÷ÒªÊÇÓÃÀ´µ÷ÊԵġ£Èç¹ûÄú¸ù±¾¾Í²»Ïë ......

Linux»ñÈ¡±¾»úIP¡¢MACʾÀý³ÌÐò

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <stdio.h>
#include <string>
#include <iostream>
#include <cstring>
using namespace std;
void peek_interfaces(int ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ