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

VB.NET WinForms项目:如何将IP地址写入TextBox?

解决方案

步骤1:添加必要的命名空间

在窗体代码文件的最顶部添加以下引用,否则无法使用网络相关的类:

Imports System.Net
Imports System.Net.Sockets

步骤2:编写获取本地IPv4地址的函数

这个函数会自动筛选出非回环的IPv4地址(排除127.0.0.1),如果找不到可用地址则返回回环地址:

Private Function GetLocalIPv4() As String
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    For Each ipAddress As IPAddress In hostEntry.AddressList
        ' 筛选IPv4地址且不是回环地址
        If ipAddress.AddressFamily = AddressFamily.InterNetwork AndAlso Not IPAddress.IsLoopback(ipAddress) Then
            Return ipAddress.ToString()
        End If
    Next
    ' 兜底返回回环地址
    Return IPAddress.Loopback.ToString()
End Function

步骤3:修改Button1_Click事件

直接调用上面的函数,把IP地址赋值给TextBox8,同时优化内存显示格式(可选):

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.MouseClick
    TextBox3.Text = SystemInformation.UserName
    TextBox4.Text = My.Computer.Info.OSFullName
    TextBox5.Text = My.Computer.Info.OSVersion.ToString() ' 将Version类型转为字符串
    TextBox6.Text = FormatBytes(My.Computer.Info.TotalPhysicalMemory) ' 格式化内存为易读单位
    TextBox7.Text = SystemInformation.UserDomainName
    TextBox8.Text = GetLocalIPv4() ' 填充IP地址
End Sub

可选:添加内存大小格式化函数

如果需要把字节数(TotalPhysicalMemory)转换成GB/MB等易读单位,添加这个辅助函数:

Private Function FormatBytes(bytes As Long) As String
    Dim sizes() As String = {"B", "KB", "MB", "GB", "TB"}
    Dim currentSize As Double = bytes
    Dim index As Integer = 0
    While currentSize >= 1024 AndAlso index < sizes.Length - 1
        currentSize /= 1024
        index += 1
    End While
    Return $"{Math.Round(currentSize, 2)} {sizes(index)}"
End Function

补充说明

  • 如果你的电脑有多个网卡(如有线+无线),上述函数会返回第一个检测到的非回环IPv4地址。如果需要显示所有可用IPv4,可以修改函数返回逗号分隔的字符串。
  • 之前调用其他Sub失败,大概率是因为Sub没有返回值或参数传递不当,改用函数返回字符串的方式更直观,适合新手理解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 13:18:02