获取公网IP地址

获取公网IP地址通常需要通过外部服务,因为本地代码无法直接得知其公网IP。你可以使用HTTP请求访问提供公网IP的服务。

using System;
using System.Net.Http;
using System.Threading.Tasks;

public class Program
{
    public static async Task Main()
    {
        string publicIP = await GetPublicIPAddressAsync();
        Console.WriteLine("Your public IP address is: " + publicIP);
    }

    public static async Task<string> GetPublicIPAddressAsync()
    {
        string url = "https://api64.ipify.org/";
        string ip = "";
        try
        {
            using (HttpClient client = new HttpClient())
            {
                HttpResponseMessage response = await client.GetAsync(url);
                response.EnsureSuccessStatusCode();
                ip = await response.Content.ReadAsStringAsync();
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("Error getting public IP address: " + e.Message);
        }
        return ip;
    }
}

这段代码使用HttpClientapi.ipify.org发送请求,该服务会返回请求来源的公网IP地址。

注意事项

  • 获取公网IP地址时,确保你的网络连接是活动的,并且你有访问外部服务的权限。
  • 获取本地IP地址时,代码会返回所有网络接口的IP地址,包括虚拟网络接口和物理网络接口。
  • 使用外部服务获取公网IP地址时,要注意服务的可用性和响应时间。

这些方法应该能满足你在C#中获取IP地址的基本需求。

posted @   yinghualeihenmei  阅读(165)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2023-10-09 visio怎么打开?除了使用visio之外,用word打开操作步骤
2022-10-09 png图片和jpg图片有什么区别
2022-10-09 .lic文件是什么
2022-10-09 SpringBoot框架中的DAO层、Entity层、Service层、Controller层
2022-10-09 Spring、springboot、springMVC、JPA、SpringData、springCloud的概述
2022-10-09 elementUI/jquery/bootstrap/vue的异同
点击右上角即可分享
微信分享提示