You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用VB.NET从JSON文件中提取仅IPv4地址?

当然可以用VB.NET完成这个需求!下面是一套完整的实现方案,完全不依赖任何外部工具,直接从JSON内容里提取并过滤出IPv4地址。

实现思路

核心步骤很清晰:

  • 获取JSON文件内容(支持本地文件或远程URL)
  • 用正则表达式精准匹配所有IPv4地址
  • 对匹配结果去重、整理
  • 输出或保存最终结果
完整代码示例
Imports System
Imports System.Net.Http
Imports System.Text.RegularExpressions
Imports System.Linq
Imports System.IO

Module IPAddressExtractor
    Sub Main()
        ' 替换为你的JSON文件路径或远程URL,例如本地路径:"C:\data\example.json" 或远程URL:"https://xxx/raw.json"
        Dim jsonSource As String = "你的JSON源地址"
        Dim ipv4List As IEnumerable(Of String) = Nothing

        Try
            ' 1. 读取JSON内容
            Dim jsonContent As String = GetContentFromSource(jsonSource)

            ' 2. 正则匹配IPv4地址(仅识别合法的IPv4格式)
            Dim ipv4Regex As New Regex(
                "\b(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b",
                RegexOptions.IgnoreCase Or RegexOptions.Multiline
            )

            ' 提取所有匹配项并去重
            ipv4List = ipv4Regex.Matches(jsonContent).Cast(Of Match)().Select(Function(m) m.Value).Distinct()

            ' 3. 输出结果到控制台
            Console.WriteLine("提取到的IPv4地址:")
            For Each ip As String In ipv4List
                Console.WriteLine(ip)
            Next

            ' 可选:将结果保存为每行一个IP的文本文件
            ' File.WriteAllLines("Extracted_IPv4_List.txt", ipv4List)

        Catch ex As Exception
            Console.WriteLine($"运行出错:{ex.Message}")
        End Try
    End Sub

    ''' <summary>
    ''' 自动识别并读取本地文件或远程URL的内容
    ''' </summary>
    ''' <param name="source">本地文件路径或远程URL</param>
    ''' <returns>内容字符串</returns>
    Private Function GetContentFromSource(source As String) As String
        If source.StartsWith("http://") OrElse source.StartsWith("https://") Then
            ' 远程URL场景:使用HttpClient异步读取内容
            Using client As New HttpClient()
                Return client.GetStringAsync(source).Result
            End Using
        Else
            ' 本地文件场景:直接读取文本内容
            Return File.ReadAllText(source)
        End If
    End Function
End Module
代码细节解释
  1. 内容读取适配:GetContentFromSource函数会自动判断输入是本地文件还是远程URL,分别采用对应的读取方式,兼顾两种使用场景。
  2. 精准IPv4匹配:使用标准的IPv4正则表达式,只会识别0.0.0.0到255.255.255.255范围内的合法地址,排除格式无效的伪IP。
  3. 去重处理:通过Distinct()方法自动剔除重复的IP地址,确保最终结果没有冗余项。
  4. 异常防护:包裹了Try-Catch块,能捕获网络请求失败、文件不存在等异常情况,让程序运行更稳定。
扩展说明
  • 如果需要处理本地JSON文件,直接把jsonSource替换为你的本地文件路径即可。
  • 若要生成和你期望格式一致的结果文件,取消注释代码里的File.WriteAllLines语句,会自动创建每行一个IP的文本文件。

内容的提问来源于stack exchange,提问作者ctOS Lab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 19:07:51