public unsafe PosixResult TryGetLocalIPAddress(out IPEndPointStruct ep, IPAddress reuseAddress = null) { IPSocketAddress socketAddress; var rv = SocketInterop.GetSockName(this, (byte *)&socketAddress, sizeof(IPSocketAddress)); if (rv.IsSuccess) { ep = socketAddress.ToIPEndPoint(reuseAddress); } else { ep = default(IPEndPointStruct); } return(rv); }
public static unsafe PosixResult TryGetLocalIPAddress(int socket, out IPEndPointStruct ep, IPAddress reuseAddress = null) { sockaddr_storage socketAddress; var rv = SocketInterop.GetSockName(socket, &socketAddress); if (rv.IsSuccess) { if (!ToIPEndPointStruct(&socketAddress, out ep, reuseAddress)) { return(new PosixResult(PosixResult.EINVAL)); } } else { ep = default(IPEndPointStruct); } return(rv); }