如何通过Python构造一个DNS查询包
2019-03-12 17:02:19
微信公开课小程序热门讨论「如何通过Python构造一个DNS查询包」最新回复-Dragonfly是一个用Python开发的语音识别框架。提供高级对象模型,可编写简单脚本来实现语音的识别。当前支持语音识别引擎有:DragonNaturallySpeaking(DNS),aproductofNuance,WindowSpeechRecognition(WSR),asincludedinMicrosoftWindowsVista.
可以尝试以下步骤:ping一个域名,用wireshark抓一个DNS的query,看看各个字段分别是什么值;用python的struct将这些字段按顺序pack成二进制数据;用python的socket将构造好的数据发到DNS服务器UDP的53号端口,本地端口可以自行指定;用python的socket从buffer中读取server返回的数据;用python的struct将二进制数据中各个字段按顺序unpack回来;打印显示。按照这个方法,同样可以写一个简单的DNS服务器,希望能有所帮助。再具体点,可以参照TheTCP/IPGuide中的DNSmessageformat来构造query的各个字段:Header部分Identifier:16位的int,就是0-65535,可以用随机数产生。Flags:0x0100,其中:#0...............=Query/ResponseFlag:query=0#.0000...........=Opcode:standardquery=0#.....0..........=AuthoritativeAnswerFlag#......0.........=Truncated:nottruncated=0#.......1........=Recursiondesired:recursively=1,如果想iteratively就置1#........0.......=RecursionAvailable:response的东西,=0#.........000....=Zero:保留字段,=0#............0000=ResponseCode:=03.QuestionCount:16位的int,=0x00014.AnswerRecordCount:16位的int,=0x00005.AuthorityRecordCount:16位的int,=0x00006.AdditionalRecordCount:16位的int,=0x0000Question部分QName:直接把域名打包进去;QType:16位的int,我们要得到的是主机名,所以=0x0001,QClass:16位的int,=0x0001 更多有关「如何通过Python构造一个DNS查询包」的疑问请扫码关注微信公开课+小程序!
可以尝试以下步骤:ping一个域名,用wireshark抓一个DNS的query,看看各个字段分别是什么值;用python的struct将这些字段按顺序pack成二进制数据;用python的socket将构造好的数据发到DNS服务器UDP的53号端口,本地端口可以自行指定;用python的socket从buffer中读取server返回的数据;用python的struct将二进制数据中各个字段按顺序unpack回来;打印显示。按照这个方法,同样可以写一个简单的DNS服务器,希望能有所帮助。再具体点,可以参照TheTCP/IPGuide中的DNSmessageformat来构造query的各个字段:Header部分Identifier:16位的int,就是0-65535,可以用随机数产生。Flags:0x0100,其中:#0...............=Query/ResponseFlag:query=0#.0000...........=Opcode:standardquery=0#.....0..........=AuthoritativeAnswerFlag#......0.........=Truncated:nottruncated=0#.......1........=Recursiondesired:recursively=1,如果想iteratively就置1#........0.......=RecursionAvailable:response的东西,=0#.........000....=Zero:保留字段,=0#............0000=ResponseCode:=03.QuestionCount:16位的int,=0x00014.AnswerRecordCount:16位的int,=0x00005.AuthorityRecordCount:16位的int,=0x00006.AdditionalRecordCount:16位的int,=0x0000Question部分QName:直接把域名打包进去;QType:16位的int,我们要得到的是主机名,所以=0x0001,QClass:16位的int,=0x0001 更多有关「如何通过Python构造一个DNS查询包」的疑问请扫码关注微信公开课+小程序!
标签:微信公开课,小程序
「如何通过Python构造一个DNS查询包」热议话题订阅
方法1:微信扫描微信公开课小程序码即可订阅热议话题「如何通过Python构造一个DNS查询包」
方法2:微信搜索微信公开课小程序名称进入,即可订阅热议话题「如何通过Python构造一个DNS查询包」
方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热议话题「如何通过Python构造一个DNS查询包」
微信公开课小程序热议话题「如何通过Python构造一个DNS查询包」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。
微信公开课热议话题「如何通过Python构造一个DNS查询包」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。
微信公开课小程序
更新时间:2019-03-12 17:02:19
>
__methodCallerx27;ofundefined
>-404011cloudfunctionexecutionerror
>,请补充选择商家自营-预付卡销售-发行方类目,并在基础信息处申请该类目,通过
>:host在模拟器中显示无效
>:请在小程序服务页面上架正式(非测试)内容或商品后重新提交审核
>.net 微信小程序 上传图片
>'setTimeout'的问题
>‘三朵里熙SPA主题减压空间’为什么搜索关键词‘三朵里‘搜不到
>‘扫普通链接二维码打开小程序‘中设置为体验版,扫码打开是线上版本
>“cloudfunctions**indexjs”gitignore
>“NO ULINK DEVICE FOUND”是怎么回事
>“万马掌上校园”的类目审核
>“上线了”公司开发的微信小程序怎么样?
>“产品是否一定需要条形码”
>