recv
Ws2_32.dll の -functionにフックをインストールしました。が呼び出されたときにrecv
、情報の送信者に関する情報を取得したいと考えています。そこで、送信者のリモートアドレスを取得するために次のことを試みましたが、取得したアドレスは常に間違っており、インターネットにとって非常に非現実的です (たとえば、2.0.0.80 を取得します)。
私は何を間違っていますか?
int __stdcall TcpHook::my_recv(SOCKET s, char *buf, int len, int flags)
{
sockaddr addr;
int len2 = sizeof(addr);
getpeername(s, &addr, &len2);
char *sender = inet_ntoa(*(in_addr*)&addr);
// print out sender etc.
return tcpHook.recvOriginal(s, buf, len, flags);
}
s
興味深い点は、渡された(type )にもかかわらず、情報がないことですSOCKET
。