参考了网上的一篇文章,由于时间长了,具体地址不知道了。
引入了一个DLL: Interop.NATUPNPLib.dll,实现穿透局域网,进行Socket通信。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using NATUPNPLib;
using System.Threading;
using System.Text.RegularExpressions;
using System.IO;
namespace _22UPnP穿透内网
{
class Program
{
static void Main(string[] args)
{
//获取Host Name
string serverName = Dns.GetHostName();
Console.WriteLine("Server名称:" + serverName);
//从当前Host Name解析IP地址,筛选IPv4地址是本机的内网IP地址。
IPAddress internalIP = Dns.GetHostEntry(serverName).AddressList
.Where(i => i.AddressFamily == AddressFamily.InterNetwork)
.FirstOrDefault();
Console.WriteLine("Server内网IP:" + internalIP);