⟩ How you can retrieve the local IP address on client side within an interceptor?
OAccessing the local address on the client-side, e.g. in an interceptor can be achieved by using the following code:
CORBA::Object_var obj = orb->resolve_initial_references("IT_IPTransport");
if (CORBA::is_nil(obj))
{
self_addr = (const char*) 0;
return;
}
IT_ATLI2_IP::IPTransport_ptr ip_transport = IT_ATLI2_IP::IPTransport::_narrow(obj);
if (CORBA::is_nil(ip_transport))
{
self_addr = (const char*) 0;
return;
}
CORBA::String_var hostname = ip_transport->local_node_name();
IT_ATLI2_IP::IPAddressSeq_var ip_addresses =
ip_transport->name_to_addresses(
hostname,
0,
IT_ATLI2_IP::PROTOCOL_TCP,
IT_UtcT::never()
);
IT_ATLI2_IP::IPAddress_var ip_address = ip_addresses[0];
self_addr = ip_address->node_literal();