C++ 在c++;

C++ 在c++;,c++,C++,我想获得给定url的ip地址 我目前正在使用这个 std::string i; std::string pingStr = (std::string)"nslookup " +"www.yahoo.com" ; i = system (pingStr.c_str()); 但结果是 Server: 127.0.1.1 Address: 127.0.1.1#53 Non-authoritative answer: www.yahoo.

我想获得给定url的ip地址

我目前正在使用这个

        std::string i;
        std::string pingStr = (std::string)"nslookup " +"www.yahoo.com" ;
        i = system (pingStr.c_str());
但结果是

Server:     127.0.1.1
Address:    127.0.1.1#53

Non-authoritative answer:
www.yahoo.com   canonical name = atsv2-fp-shed.wg1.b.yahoo.com.
Name:   atsv2-fp-shed.wg1.b.yahoo.com
Address: 106.10.250.10

Q:是否仍然只能获取Ip地址?

使用该函数查找可用形式的Ip地址IPv4或IPv6。

使用该函数查找可用形式的Ip地址IPv4或IPv6。

您可以使用以下命令

nslookup www.yahoo.com | grep Address: |  sed -n 2p
grep Address提供所有包含“Address”单词的行

塞德得到了这两条线中的第二条


可以截断C++中输出的“地址”部分。

< p>可以使用该折叠命令。< /P>
nslookup www.yahoo.com | grep Address: |  sed -n 2p
grep Address提供所有包含“Address”单词的行

塞德得到了这两条线中的第二条



<>你可以截断C++中输出的“地址”部分。

你是否考虑使用“<代码>系统”(< /代码>?NOPE),不知道它,我会检查这个。你想把地址输入到程序中,还是只是通过执行一个不同的程序来打印它?BTW.我相信Sams的答案更值得。调用库函数通常比通过任何类型的
fork()
/
exec()
(大多数情况下,可能更快)调用外部程序更容易受到攻击。我必须获得ip地址并在我的程序中使用它。您是否考虑过使用它来代替
system()
?不,我没有意识到,我来看看。你是想把地址输入你的程序,还是只是通过执行不同的程序来打印它?顺便说一句。我相信Sams的答案更值得一提。调用库函数通常比通过任何类型的
fork()
/
exec()
(大多数情况下,可能更快)调用外部程序要容易得多。我必须获取ip地址并在程序中使用它谢谢,让我检查一下,当我尝试运行此程序时,它需要3个参数,我只有网站url,etaddrinfo(“www.yahoo.com”),我这样做对吗?没有。正如
getaddrinfo()
的文档所解释的,它需要四个参数。文档说明了每个参数应设置为什么。第一个是地址或主机名。第二个指定端口号将在返回的地址列表中设置为什么。文档还告诉您在不需要端口号的情况下要指定什么。第三个是地址解析提示指针,文档告诉您在不需要提供提示时要传递什么。第四个是返回的列表ptr。阅读文档。完成检查和使用返回的链接列表的内容后,不要忘记执行文档中告诉您的操作,从
getaddrinfo()
。否则您将泄漏内存。谢谢,让我检查一下当我尝试运行此程序时,它需要3个参数,我只有网站url,etaddrinfo(“www.yahoo.com”),我这样做对吗?不。正如
getaddrinfo()
的文档所解释的,它需要四个参数。文档说明了每个参数应设置为什么。第一个是地址或主机名。第二个指定端口号将在返回的地址列表中设置为什么。文档还告诉您在不需要端口号的情况下要指定什么。第三个是地址解析提示指针,文档告诉您在不需要提供提示时要传递什么。第四个是返回的列表ptr。阅读文档。完成检查和使用返回的链接列表的内容后,不要忘记执行文档中告诉您的操作,从
getaddrinfo()
。否则你会泄露内存。C++中有一种奇怪的方法,通过shell调用你的系统上安装的工具。我们有API。这是C++中一种奇怪的方法,通过shell调用系统上安装的工具。我们有这方面的API。