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

如何使用VB.NET分离IP地址与端口?

解决ListBox代理分离IP和端口并调用SetProxy的问题

我来给你梳理下具体的实现思路和代码,完全适配你提到的Proxy.SetProxy(ip, Convert.ToInt16(port))方法要求:

核心思路

  1. 遍历ListBox中的每一个代理条目
  2. 对每个代理字符串做格式校验(必须包含冒号分隔IP和端口)
  3. 按冒号拆分字符串,分离出IP地址和端口字符串
  4. 安全地将端口字符串转换为Int16类型(避免格式错误崩溃)
  5. 调用指定的Proxy.SetProxy方法完成设置

VB.NET 实现代码

' 遍历ListBox中的所有代理项(如果只想处理选中项,换成ListBox1.SelectedItems即可)
For Each proxyEntry As String In ListBox1.Items
    ' 先校验代理格式是否合法——必须包含冒号
    If proxyEntry.Contains(":") Then
        ' 按冒号拆分,得到IP和端口的字符串数组
        Dim proxyParts() As String = proxyEntry.Split(":"c)
        
        ' 清理可能存在的前后空格,避免无效IP/端口
        Dim targetIp As String = proxyParts(0).Trim()
        Dim portText As String = proxyParts(1).Trim()
        
        ' 安全转换端口为Int16类型,防止非数字端口引发异常
        Dim targetPort As Int16
        If Int16.TryParse(portText, targetPort) Then
            ' 调用你指定的Proxy.SetProxy方法
            Proxy.SetProxy(targetIp, targetPort)
            ' 可选:添加日志或提示,确认设置成功
            Debug.WriteLine($"代理设置完成:{targetIp}:{targetPort}")
        Else
            ' 端口格式错误时的处理逻辑
            Debug.WriteLine($"跳过无效代理:{proxyEntry},端口{portText}不是合法数字")
        End If
    Else
        ' 代理格式错误(无冒号)的处理逻辑
        Debug.WriteLine($"跳过无效代理:{proxyEntry},格式不符合IP:Port要求")
    End If
Next

关键细节说明

  • 格式校验:先用Contains(":")过滤掉格式明显错误的代理,避免后续拆分出问题
  • 安全转换:用Int16.TryParse替代直接Convert.ToInt16,这样即使端口是非法字符,也只会跳过该条目,不会导致程序崩溃
  • 空格处理:拆分后用Trim()清理前后空格,防止用户输入时不小心加了空格导致IP/端口无效
  • 灵活选择:如果不需要处理所有条目,只需把ListBox1.Items替换成ListBox1.SelectedItems,就能只处理用户选中的代理

内容的提问来源于stack exchange,提问作者hath hassan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:45:06