如何从strace nslookup读取sendmsg,recvmsg,msg_iov和iov_base?

当我运行strace到nslookup域时,我可以看到套接字通信以及sendmsg和recvmsg

strace -s160 -vf nslookup eldiario.news

我想知道如何手动转换sendmsg和recvmsg行,特别是iov_base。

示例:下一行是使用端口53建立与DNS服务器192.168.31.1的通信。什么是iov_base l\347\1\0\0\1\0\0\0\0\0\0\10eldiario\4news\0\0\34\0\1吗?

[pid 10990] sendmsg(20,{msg_name={sa_family=AF_INET,sin_port=htons(53),sin_addr=inet_addr("192.168.31.1")},msg_namelen=16,msg_iov=[{iov_base="l\347\1\0\0\1\0\0\0\0\0\0\10eldiario\4news\0\0\34\0\1",iov_len=31}],msg_iovlen=1,msg_controllen=0,msg_flags=0},0 <unfinished ...>

同样适用于。 recvmsg。

[pid 10990] recvmsg(20,msg_namelen=128->16,msg_iov=[{iov_base="l\347\201\200\0\1\0\3\0\0\0\0\10eldiario\4news\0\0\34\0\1\300\f\0\34\0\1\0\0\0\36\0\20&\6G\00002\0\0\0\0\0\0h\30}w\300\f\0\34\0\1\0\0\0\36\0\20&\6G\00003\0\0\0\0\0\0h\30|w\300\f\0\34\0\1\0\0\0\36\0\20&\6G\00000\0\0\0\0\0\0\254C\304\337",iov_len=65535}],msg_control=[{cmsg_len=32,cmsg_level=SOL_SOCKET,cmsg_type=SCM_TIMESTAMP,cmsg_data={tv_sec=1592750089,tv_usec=151844}},{cmsg_len=17,cmsg_level=SOL_IP,cmsg_type=IP_TOS,cmsg_data=[0]}],msg_controllen=56,0) = 115

如何阅读或翻译?

l\347\201\200\0\1\0\3\0\0\0\0\10eldiario\4news\0\0\34\0\1\300\f\0\34\0\1\0\0\0\36\0\20&\6G\00002\0\0\0\0\0\0h\30}w\300\f\0\34\0\1\0\0\0\36\0\20&\6G\00003\0\0\0\0\0\0h\30|w\300\f\0\34\0\1\0\0\0\36\0\20&\6G\00000\0\0\0\0\0\0\254C\304\337

谢谢!

iCMS 回答:如何从strace nslookup读取sendmsg,recvmsg,msg_iov和iov_base?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2079891.html

大家都在问