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ÍøÂç¹ÜÀíԱӦƸ¿¼ÊÔÌ⣨º¬´ð°¸£©
Ò»£®Ìî¿ÕÌ⣺
£¨¼Ó´ÖµÄÎÄ×ÖΪ¸ÃÌâµÄ´ð°¸£©
1. ÔÚLinuxϵͳÖУ¬ÒÔ Îļþ
·½Ê½·ÃÎÊÉ豸 ¡£
2. LinuxÄÚºËÒýµ¼Ê±£¬´ÓÎļþ /etc/fstab
ÖжÁȡҪ¼ÓÔØµÄÎļþϵͳ¡£
3. LinuxÎļþϵͳÖÐÿ¸öÎļþÓà i½Úµã
À´±êʶ¡£
4. È«²¿´ÅÅÌ¿éÓÉËĸö²¿·Ö×é³É£¬·Ö±ðΪÒýµ¼¿é ¡¢×¨ÓÃ¿é ¡¢ i½Úµã±í¿é ......
NO
·ÖÀà
PS1
ÃüÁîÃû
Ó÷¨¼°²ÎÊý
¹¦ÄÜ×¢½â
1
ÏÔʾĿ¼ÐÅÏ¢
#
ls
ls -a
Áгöµ±Ç°Ä¿Â¼ÏµÄËùÓÐÎļþ£¬°üÀ¨ÒÔ.Í·µÄÒþº¬Îļþ
#
ls
ls -l»òll
Áгöµ±Ç°Ä¿Â¼ÏÂÎļþµÄÏêϸÐÅÏ¢
#
ls
ls -a
ÏÔʾËùÓÐÎļþ£¬°üº¬Òþ²Ø¡£
#
ls
ls -al
ÏÔʾËùÓÐÎļþµÄÏêϸÐÅÏ¢¡£
2
²é¿´Â·¾¶
#
pwd
pwd
......
LinuxÌṩÁË´óÁ¿µÄÃüÁÀûÓÃËü¿ÉÒÔÓÐЧµØÍê³É´óÁ¿µÄ¹¤
×÷£¬Èç´ÅÅ̲Ù×÷¡¢Îļþ´æÈ¡¡¢Ä¿Â¼²Ù×÷¡¢½ø³Ì¹ÜÀí¡¢ÎļþȨÏÞÉ趨µÈ¡£ËùÒÔ£¬ÔÚLinuxϵͳÉϹ¤×÷Àë²»¿ªÊ¹ÓÃϵͳÌṩµÄÃüÁî¡£ÒªÏëÕæÕýÀí½âLinuxϵͳ£¬
¾Í±ØÐë´ÓLinuxÃüÁîѧÆð£¬Í¨¹ý»ù´¡µÄÃüÁîѧϰ¿ÉÒÔ½øÒ»²½Àí½âLinuxϵͳ¡£
²»Í¬Linux·¢ÐаæµÄÃüÁîÊýÁ¿²»Ò»Ñù£¬µ«Linux·¢Ð ......
#ifndef __KERNEL__
#define __KERNEL__
#endif
#ifndef MODULE
#define MODULE
#endif
#include<linux/config.h>
#include<linux/module.h>
#include<linux/version.h>
#include<linux/init.h>
#include<linux/kernel.h>
#include<linux/errno.h>
#include<linux/sche ......
#!/bin/bash
while getopts "ab:cd:" Option
# b and d take arguments
#
do
case $Option in
a) echo -e "a = $OPTIND";;
b) echo -e "b = $OPTIND $OPTARG";;
c) echo -e "c = $OPTIND";;
d) echo -e "d = $OPTIND $OPTARG";;
esac
done
shift $(($OPTIND - 1)) ......