【问题标题】:how to check dns resolve error by libcurl when dns hijacking?dns劫持时如何通过libcurl检查dns解析错误?
【发布时间】:2014-07-31 03:27:31
【问题描述】:

我在我的游戏客户端使用libcurl检查url的dns是否正常,

在正常情况下,我会在 libcrul 中得到“CURLE_COULDNT_RESOLVE_HOST (6)”错误

但是如果“DNS劫持”,我会从IAP得到另一个错误url。。

所以,libcrul 会得到错误的 url 内容并返回 "curl_res==OK"

这很糟糕,而不是我的结果。

所以,我尝试获取响应 url 来验证 DNS 劫持,

curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, urlStr);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 5);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION,1);
res = curl_easy_perform(curl);               
curl_easy_getinfo(curl,CURLINFO_EFFECTIVE_URL,&response_url);

不幸的是,CURLINFO_EFFECTIVE_URL 与我的请求 url 相同,我不知道为什么?

那么,你能给我一些关于这个的想法吗?

【问题讨论】:

    标签: dns libcurl


    【解决方案1】:

    从 libcurl 的角度看,这并不是失败(如果后续传输本身也确实成功的话)。它解析名称并进行传输,效果很好。

    然后,您需要有创意并想办法检测您是否被劫持者“欺骗”,例如从您知道不应该的主机名获取页面存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多