关于RAW_SOCKET(200分)

  • 主题发起人 主题发起人 zhtong
  • 开始时间 开始时间
Z

zhtong

Unregistered / Unconfirmed
GUEST, unregistred user!
请问谁在DELPHI中启动成功过,请您给个DEMO
 
何为Demo?是启动界面的图片吗?
 
to Jams: Demo即演示版.让你给个示例.
很抱歉:RAW_SOCKET我没用过,回去试试
 
什么东东?
 
RAW SOCKET可以通过将SOCKET的连接参数设置成SOCKET_RAW,接收的数据不做任何预处理,以下是我以前的代码
if (WSAStartup(MAKEWORD(2,0),&wsaData) != 0)
{
ShowMessage("初始化错误!");
return 0;
}
PingSock=socket(IPPROTO_RAW,SOCK_RAW,1);
if(PingSock==INVALID_SOCKET)
{
ShowMessage("SOCKET初始化失败");
return 0;
}
 
接收的数据不做任何预处理什么控件都可以做到啦

强烈推荐 ics
 
Raw Socket的创建就是wwwsys的那样了。
但是第三个参数是要自己决定的,一般是
用IPPROTO_ICMP,其它的TCP和UDP的包
接收时系统会交给响应的程序处理。

当然你可以用它来发送TCP和UDP包了。

但是raw socket并不是任何winsock版本都
支持的,可能会出错。
 
我只在unix下用过raw socket,很有用,可以利用tcp的漏动写synflooder攻击程序!也可隐藏udp数据报的源ip地址!!
 
还是猪哥来给你解说.
那个张大虾说的对,那个RAW_SOCKET,winsock好多都不支持,所有不能在winXX下用把
参数设成什么SOCK底下的ET_RAW来实现.windows底下的ICMP工作(需要用RAW SOCKET),
是通过一个叫ICMP.dll的东西实现的.你可以去看看delphi做的什么ping控件的源代码
就知道了.
 
好象WIN2000彻底支持RAW SOCKET。
98和NT都不行,实在要在98/NT下做,只能写NDIS驱动,然后直接发送包。
 
多人接受答案了。
 
后退
顶部