在C#中,你可以使用System.Net
命名空间中的类来获取服务器的IP地址。以下是一个简单的示例,展示了如何使用TcpClient
类获取本地服务器的IP地址:
using System;
using System.Net;
using System.Net.Sockets;
class Program
{
static void Main()
{
// 获取本地IP地址
IPAddress localAddr = GetLocalIPAddress();
Console.WriteLine("本地IP地址: " + localAddr);
}
static IPAddress GetLocalIPAddress()
{
// 获取本地计算机的网络适配器信息
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
// 遍历所有网络适配器
foreach (NetworkInterface adapter in nics)
{
// 检查适配器是否支持IPv4
if (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet ||
adapter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211)
{
// 获取适配器的所有IP地址
IPAddress[] ipAddresses = adapter.GetIPProperties().UnicastAddresses;
// 遍历所有IP地址
foreach (IPAddress ip in ipAddresses)
{
// 检查IP地址是否为IPv4并且不是环回地址
if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork &&
!ip.IsLoopback)
{
// 返回第一个IPv4非环回地址
return ip;
}
}
}
}
// 如果没有找到IPv4地址,返回null
return null;
}
}
这个示例将获取本地计算机的IP地址,并将其输出到控制台。请注意,这个方法仅适用于本地计算机。如果你需要获取远程服务器的IP地址,你需要知道远程服务器的域名或IP地址。然后,你可以使用Dns.GetHostEntry
方法来获取服务器的IP地址:
using System;
using System.Net;
class Program
{
static void Main()
{
// 远程服务器的域名或IP地址
string serverAddress = "example.com";
// 获取远程服务器的IP地址
IPHostEntry hostEntry = Dns.GetHostEntry(serverAddress);
IPAddress serverIp = hostEntry.AddressList[0];
Console.WriteLine("远程服务器IP地址: " + serverIp);
}
}
将example.com
替换为你要查询的远程服务器的域名或IP地址。这个示例将获取远程服务器的IP地址,并将其输出到控制台。