So I need some way of turning given Protocol://URLorIP:Port
string into string ip
int port
How to do such thing with boost ASIO and Boost
Remember that there may be multiple IP addresses for any one hostname, boost gives you an iterator that will go through them.
The use is fairly straightforward, add this before return 0;
of your program:
std::cout << "IP addresses: \n";
boost::asio::io_service io_service;
boost::asio::ip::tcp::resolver resolver(io_service);
boost::asio::ip::tcp::resolver::query query(values[1], "");
for(boost::asio::ip::tcp::resolver::iterator i = resolver.resolve(query);
i != boost::asio::ip::tcp::resolver::iterator();
++i)
{
boost::asio::ip::tcp::endpoint end = *i;
std::cout << end.address() << ' ';
}
std::cout << '\n';
and don't forget #include <boost/asio.hpp>
test run:
~ $ g++ -g -Wall -Wextra -pedantic -Wconversion -ansi -o test test.cc -lboost_regex -lboost_system -lboost_thread
~ $ ./test http://www.google.com:7777
Protocol: http
Host: www.google.com
Port: 7777
Path:
File:
Parameters:
IP addresses:
74.125.226.179 74.125.226.176 74.125.226.178 74.125.226.177 74.125.226.180
PS: For reference, I called
""