Para obtener la direccion IP de una máquina en C++:
#include <netdb.h>
#include <arpa/inet.h>
char szBuffer[1024];
if(gethostname(szBuffer, sizeof(szBuffer)) != 0)
{
std::cout << "error en gethostname" << std::endl;
}
else
{
struct hostent *host = gethostbyname(szBuffer);
if(host == NULL)
{
std::cout << "error en gethostbyname" << std::endl;
}
else
{
char * szLocalIP;
szLocalIP = inet_ntoa (*(struct in_addr *)*host->h_addr_list);
std::cout << "mi nombre de host es "<< host->h_name <<" y mi ip con c++ es " << szLocalIP << std::endl;
}
}
Con boost:
#include "boost/asio.hpp"
using boost::asio::ip::tcp;
boost::asio::io_service io_service;
tcp::resolver resolver(io_service);
tcp::resolver::query query(boost::asio::ip::host_name(), "");
tcp::resolver::iterator iter = resolver.resolve(query);
tcp::resolver::iterator end; // End marker.
while (iter != end)
{
tcp::endpoint ep = *iter++;
std::cout << "mi nombre de host es " << boost::asio::ip::host_name() << " y mi ip con boost es " << ep.address() << std::endl;
}
No hay comentarios:
Publicar un comentario