user-0 提问: 如何使用c语言通过域名得到ip。服务器是域名转发的技术

回复:
user: user-0
content: 续求解决方案

user: user-0
content: 引用 18 楼 yhlzxq 的回复:用的是域名转发技术来把ip转发回来，而不是解析 ？？？

user: user-1
content: 用的是域名转发技术来把ip转发回来，而不是解析

user: user-0
content: 引用 16 楼 dooX8086 的回复:域名---->IP ： 我们常常称为 域名解析，是通过 DNS 服务器进行解析的 域名转发(URL跳转) ：DNS服务器是没有这功能的，是由 DNS服务商提供的特殊处理的功能,是专门针对浏览器的( http 客户端) 如：www.a.com  做了转发到  www.b.com 过程大概是这样: 1). 浏览器 -----  向  DNS服务 请求 www.a.com 的 IP -----> DNS 返回一个 IP (这是个"虚假"的IP, 是DSN服务商专为url转发准备好的) 2). 浏览器 ----- 使用http协议访问: IP -----> IP主机会返回 http 301/302   location:www.b.com 的 内容给 浏览器 3). 浏览器 处理 http 301/302 location:www.b.com, 然后访问  www.b.com   (这就是所为的  跳转 ) 4). 浏览器 -----  向  DNS服务 请求 www.b.com 的 IP  (这个才是真的目的IP) 5).  ......  ps:怎么感觉我把它说复杂了  - -!!!!  -------------------------------------------------------------------------------------- 拿 csdn  的域名来的看看  www.csdn.com 是做了跳转到  www.csdn.net 的 用工具 curl 看看它  可以看到 是采用 http 302 显式 跳转 你再用 浏览器 访问下 www.csdn.com 就应该明白了, 所为的URL跳转 是 http 客户端干的  说了一陀陀都是关于 域名跳转/url转发 的  ------------------------------------------------------------ 如果楼主环境的相关服务对  www.xxxx.local  "转发" 所做的特殊处理是直接返回目的  IP 的... ...那请无视我上面所说的。 因为这就是 DNS 的 A记录了 非常感谢你的解答，非常详细，有点诚惶诚恐。嗯，之前问过领导，他说服务器是直接返回ip地址的。那就是说我现在应该朝着a记录这个线索走了？

user: user-2
content: 域名---->IP ： 我们常常称为 域名解析，是通过 DNS 服务器进行解析的 域名转发(URL跳转) ：DNS服务器是没有这功能的，是由 DNS服务商提供的特殊处理的功能,是专门针对浏览器的( http 客户端) 如：www.a.com  做了转发到  www.b.com 过程大概是这样: 1). 浏览器 -----  向  DNS服务 请求 www.a.com 的 IP -----> DNS 返回一个 IP (这是个"虚假"的IP, 是DSN服务商专为url转发准备好的) 2). 浏览器 ----- 使用http协议访问: IP -----> IP主机会返回 http 301/302   location:www.b.com 的 内容给 浏览器 3). 浏览器 处理 http 301/302 location:www.b.com, 然后访问  www.b.com   (这就是所为的  跳转 ) 4). 浏览器 -----  向  DNS服务 请求 www.b.com 的 IP  (这个才是真的目的IP) 5).  ......  ps:怎么感觉我把它说复杂了  - -!!!!  -------------------------------------------------------------------------------------- 拿 csdn  的域名来的看看  www.csdn.com 是做了跳转到  www.csdn.net 的 用工具 curl 看看它  可以看到 是采用 http 302 显式 跳转 你再用 浏览器 访问下 www.csdn.com 就应该明白了, 所为的URL跳转 是 http 客户端干的  说了一陀陀都是关于 域名跳转/url转发 的  ------------------------------------------------------------ 如果楼主环境的相关服务对  www.xxxx.local  "转发" 所做的特殊处理是直接返回目的  IP 的... ...那请无视我上面所说的。 因为这就是 DNS 的 A记录了

user: user-0
content: 引用 14 楼 dooX8086 的回复:哦。url 转发(跳转) 走的是 http 301/ 302 . 可以用curl 或其它工具 抓一下  www.xxxx.local  验证一下 如： curl -I www.xxxx.local 如果是的话。  那就需要从 http 301/302 中取出 真正的目的 host 再用 getaddrinfo  才可以获取到地址 = = 本人愚钝。。。没太明白。。。对于网络方便几乎一穷二白。。。c 语言网络方面更是。。。 它这个是这样的，正常的url转发是给你另一个域名，但是它是转发回一个ip地址，然后我这边取到，它就当是域名解析用了。。。。

user: user-0
content: 用的是域名转发技术来把ip转发回来，而不是解析。。。

user: user-0
content: 引用 10 楼 ForestDB 的回复:要么把服务器配好，要么直接在hosts中加上name，ip的对应。 问题是就是，它服务器不是正常的dns服务器啊。。。是域名转发的啊。。。

user: user-0
content: 引用 9 楼 dooX8086 的回复:你的这个 www.xxxx.local  域名记录 有没在你公司的 dns 服务器上? 没有就让你同事帮你添加 不是dns服务器。。。它那个是域名转发的服务器。。。。

user: user-2
content: 哦。url 转发(跳转) 走的是 http 301/ 302 . 可以用curl 或其它工具 抓一下  www.xxxx.local  验证一下 如： curl -I www.xxxx.local 如果是的话。  那就需要从 http 301/302 中取出 真正的目的 host 再用 getaddrinfo  才可以获取到地址

user: user-3
content: 要么把服务器配好，要么直接在hosts中加上name，ip的对应。

user: user-2
content: 你的这个 www.xxxx.local  域名记录 有没在你公司的 dns 服务器上? 没有就让你同事帮你添加

user: user-0
content: 引用 7 楼 dooX8086 的回复:域名 ----> ip  先查找本地 dns 表记录(缓存),如果没有)-----请求----> dns 服务器  如果 www.xxxx.local  是个私有域名  (自己定的，没有通过公共dns服申请) . 可以通过修改本地的 hosts 文件或在 dns 服务(自己服务器)上添加 A 记录, 为 www.xxxx.local 指定 ip 只有这样 gethostbyname 跟 getaddrinfo 等。函数才能取得IP  ----------------------------------------- ps: 好像 gethostbyname 跟 getaddrinfo 还支持  netbios 协议...嗯..忘记了  非常感谢您的回答。主要这边问题在于，它这个服务器是url转发，而不是正常的dns服务器。所以这个才不能正常得到ip地址把。但是安卓那边确可以使用正常的java代码返回得到ip。。。

user: user-2
content: 域名 ----> ip  先查找本地 dns 表记录(缓存),如果没有)-----请求----> dns 服务器  如果 www.xxxx.local  是个私有域名  (自己定的，没有通过公共dns服申请) . 可以通过修改本地的 hosts 文件或在 dns 服务(自己服务器)上添加 A 记录, 为 www.xxxx.local 指定 ip 只有这样 gethostbyname 跟 getaddrinfo 等。函数才能取得IP  ----------------------------------------- ps: 好像 gethostbyname 跟 getaddrinfo 还支持  netbios 协议...嗯..忘记了

user: user-0
content: 引用 5 楼 super_admi 的回复:为什么我看不懂你的意思呢？  按我自己的理解说说吧：我觉得你是没有办法解析你们公司的域名的。为啥？因为你们公司没有自己的域名服务器，而网上的域名服务器中的解析表又没有你们公司的域名。  = = 是可以的。我们公司那个服务器应该不是正常的域名服务器。它是用的域名转发实现的。你问我为什么会这样。。。对不起。。。我不知道。。。然后，安卓端那边已经实现了。- - 我这是ios。主要是url转发11年就全面下掉了，根本没什么资料了。。。真实头大

user: user-4
content: 为什么我看不懂你的意思呢？  按我自己的理解说说吧：我觉得你是没有办法解析你们公司的域名的。为啥？因为你们公司没有自己的域名服务器，而网上的域名服务器中的解析表又没有你们公司的域名。

user: user-0
content: gethostbyname 跟 getaddrinfo 我都试过了。只能解析到百度这类的域名。不过我们那个域名是www.xxxx.local这个样式的，不知道这个会不会有影响。

user: user-0
content: 我是做移动端开发的。自带的实现不了，就想利用c语言解决。

user: user-5
content: DNSQuery? 我忘了这货有没有类似接口了, 不过这或许是个C艹接口, 但是也不必在意, C艹接口也可以给C用

user: user-6
content: 参考c:\WINDOWS\system32\drivers\etc\hosts文件的内容？