如何从组播地址提取出源IP地址?(100分)

  • 主题发起人 主题发起人 duke_ding
  • 开始时间 开始时间
D

duke_ding

Unregistered / Unconfirmed
GUEST, unregistred user!
我用了winsock来接收组播地址的数据,比如227.0.0.1。每次接收到数据就显示出来。
现在我想知道这个组播地址是从哪个IP发来的。
用netspy之类的程序就可以查看227.0.0.1的组播数据是从哪个源IP发来的。
在Delphi中如何用程序实现呢?请各位大虾贴出源代码。
 
我自己找到答案了。:)

Addr1,Addr2,Addr3,Addr4: Integer;

nTotalRecv := RecvFrom(MultiRecvHandle[0],RecvBuf,RecvLen,0,In_Addr,Addrlen);

Addr1:=Ord(In_Addr.sin_addr.S_un_b.s_b1);
Addr2:=Ord(In_Addr.sin_addr.S_un_b.s_b2);
Addr3:=Ord(In_Addr.sin_addr.S_un_b.s_b3);
Addr4:=Ord(In_Addr.sin_addr.S_un_b.s_b4);

源IP地址就是:
IntToStr(Addr1)+'.'+IntToStr(Addr2)+'.'+IntToStr(Addr3)+'.'+IntToStr(Addr4)
 
后退
顶部