这样获得本机拨号时电信分配的动态IP? up 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 同意楼上的另外:ping 机器名也可以 晕了,楼主肯定是想问用VB程序怎么获得动态IP啊.用上面的方法谁不会呢?大不了随便打开一个论坛就看得到了.一般的VB例程获得的本机IP都是局域网内的IP(如192.168.0.5之类的),而非动态IP.我也希望哪位高手有此源码?只要本机能连上互联网就能检测其IP,不管这个IP是私有IP还是公网IP.就像花生壳之类的动态域名客户端软件,它们都可以检测到的.严重关注中.............................................. 简单的方法,你放个SYSINFO控件 大哥,这是MSDN里面的说明,请问大哥这里面哪句有说到检测IP呢?使用 SysInfo 控件SysInfo 可以用于检测系统事件,例如桌面的大小改变、分辨率改变、时间改变,或用于提供操作系统平台和版本信息。它也可以用于管理交流电 (AC) 和电池电源之间的切换,以及硬件配置的改变。在 Windows 95 中,在新设备添加到系统之后能够被自动检测出来。使用 SysInfo 控件的属性和事件可以分享这种“即插即用”技术带来的好处。例如,在专门为笔记本电脑编写的应用程序中,可以对在 PC 卡插槽中插入或者拔出 PC 卡作出响应。在运行时,SysInfo 控件是不可见的。图 2.27 SysInfo 控件可能的用途确定操作系统平台和版本检测桌面和监视器大小和分辨率的改变检测并管理即插即用设备监视电池和电源状态 SysInfo 控件的特性使用 SysInfo 控件,可以监视操作系统提供的信息,并对系统生成的事件作出响应。该控件的特性可分为如下几个部分: 操作系统属性(例如 OSVersion 和 WorkAreaHeight 属性)。与系统的改变有关的事件(例如 DisplayChanged、TimeChanged 和SettingChanged 事件)。即插即用事件(例如 DeviceArrival、DeviceRemoveComplete 事件)。电源状态事件和属性(例如 PowerSuspend 和 PowerResume 事件,以及 ACStatus 和 BatteryStatus 属性)。 下面几节将介绍如何使用上文中描述的事件和属性。操作系统属性和事件SysInfo 控件的操作系统属性和事件可以用于检测当前操作系统及其版本、某些全局设置的改变,或者桌面大小和分辨率的改变。操作系统平台和版本属性下表列出了可以用于确定当前的操作系统平台和版本的属性:类别 项目 描述 属性 OSPlatform 返回值标识应用程序运行在什么操作系统上。 OSVersion 返回值标识运行应用程序的操作系统的版本号。 OSBuild 返回值提供运行应用程序的操作系统的编译序号。 详细信息 “SysInfo 应用实例 1:检测当前操作系统和版本”提供了如何使用这些属性的示例。桌面大小和屏幕分辨率属性和事件下表列出了专门用于管理桌面和屏幕分辨率的操作系统属性和事件:类别 项目 描述 属性 ScrollBarSize 返回滚动条宽度的系统量度,以缇为单位。 WorkAreaHeight 返回可见桌面的高度,这是为 Windows 95 和 Windows NT 4.0 任务条作了调整之后的值。 WorkAreaLeft 返回可见桌面左边界的坐标,这是为 Windows 95 和 Windows NT 4.0 任务条作了调整之后的值。 WorkAreaTop 返回可见桌面上边界的坐标,这是为 Windows 95 和 Windows NT 4.0 任务条作了调整之后的值。 WorkAreaWidth 返回可见桌面宽度,这是为 Windows 95 和 Windows NT 4.0 任务条作了调整之后的值。 事件 DisplayChanged 在系统屏幕分辨率发生变化时产生该事件。 SysColorsChanged 当应用程序或控制面板改变了系统颜色设置时产生该事件。 当屏幕的分辨率发生改变时,将触发 DisplayChanged 事件。在 DisplayChanged 事件中使用 WorkAreaHeight、WorkAreaWidth、WorkAreaRight 和 WorkAreaLeft 属性即可确定当前的系统大小(可用的屏幕区域),并进行相应的调整。如果在 Windows 95 或 Windows NT 4.0 中任务条是可见的,则它不被算在可用的屏幕区域之内。如果用户通过 Windows 95 或 Windows NT 4.0 的控制面板中的“显示”设置改变了滚动条的大小,则有可能需要更新显示区域以正确地放置滚动条。可以在 DisplayChanged 事件中使用 ScrollBarSize 属性进行调整。详细信息 在“SysInfo 应用实例 2:屏幕大小和分辨率改变时进行相应调整”一节中提供了如何运用这些属性和事件的示例。管理硬件配置和即插即用事件如果操作系统支持该特性,则即插即用事件提供了管理系统硬件配置变化的手段。例如,硬件配置改变、系统正在连接或断开,或者 PC 插槽中正在插入或拔出 PC 卡。下表列出了专门用于管理硬件配置和即插即用设备的 SysInfo 控件事件。事件 描述 ConfigChanged 当系统的硬件配置文件改变时产生。 ConfigChangeCancelled 当操作系统发送硬件配置变化被取消的消息时产生。 DeviceArrival 当系统中添加新设备时产生。 DeviceEventOther 未映射到通用事件的通告事件。 DevModeChange 当设备模式设置发生改变时产生 DeviceQueryRemove 从系统中删除设备之前产生. DeviceQueryRemoveFailed 当 DeviceQueryRemove 事件的代码取消设备删除时产生。 DeviceRemoveComplete 在设备被删除之后产生。 DeviceRemovePending 当所有应用程序均同意删除某个设备,且该设备即将被删除时产生。 QueryChangeConfig 请求改变当前的硬件配置文件时产生。 在 Windows 95 中,用 ConfigChanged 事件通告硬件配置文件的改变。在连接和断开时,笔记本电脑通常使用不同的硬件配置文件。例如,在连接时,笔记本电脑也许会连接到网络、外部监视器上,或访问光盘驱动器。SysInfo 控件的与设备有关的事件提供了硬件配置中的设备改变反馈信息。在硬件添加到系统中之后,应用程序可以动态地使用它。使用电源状态属性和事件电源状态事件和属性能用来监视台式或笔记本电脑的交流电或电池电源状态。笔记本电脑通常都实现了电源挂起、电源恢复和电池状态等特性,然而应用程序应该适用于所有类型的计算机。下表列出了 sysInfo 控件关于电池和电源状态的事件和属性:类别 项目 描述 属性 ACStatus 返回值指出系统正在使用交流电还是电池电源。 BatteryFullTime 返回值指示电池的完全充电时间。 BatteryLifePercent 返回电池所剩电能占完全充满时的百分比。 BatteryLifeTime 返回值指示电池的剩余使用时间。 BatteryStatus 返回值给出电池的充电状态。 事件 PowerQuerySuspend 在系统电源准备挂起时产生。 PowerResume 当系统结束挂起模式时产生。 PowerStatusChanged 当系统的电源状态变化时产生。 PowerSuspend 在系统即将进入挂起模式之前产生。 在电源挂起时,电源事件可为应用程序提供一定的安全保护。PowerSuspend 事件通知应用程序电源即将被挂起。这样就可以在电源挂起前保存应用程序的状态,或保存尚未存储的文件。PowerStatusChanged 事件通知交流电和电池电源状态的改变。如果电池能量已经很少,就需要保存数据。详细信息 “Sysinfo 应用实例 3:监视电池电源状态”提供了如何用这些属性和事件监视和管理电池和交流电电源变化的示例。 刚做一个源代码放在这里: http://www.51mis.com 下载看一下就知道怎么做了 一个简单方法....首先用 Shell("ipconfig -all > C:\ipinfo.txt")再把此文件读入,去看看里面的内容然后用Instr 和Mid函数把你要的数据提取出来,包括网卡物理地址呦,嘿嘿~~~然后把那个文件kill掉就可以了~简单方便,,, 我写了代码,获取物理地址的,同样方法可以获取IP 仅供参考Private Sub Command1_Click()Shell "cmd /c ipconfig -all > c:\2.txt", vbHide '用cmd里的ipconfig显示网络详细细心,并输出到c:\2.txtTimer1.Enabled = True '为了实现延时,我用了timer控件,因为上面那个命令运行需要时间,我设置了1000毫秒End SubPrivate Sub Timer1_Timer()Timer1.Enabled = False '把timer停了Open "c:\2.txt" For Input As #1 '输入文件Do While Not EOF(1) Line Input #1, txt tmpstr = tmpstr & vbCrLf & txtLoopClose #1Kill "c:\2.txt"ss = InStr(tmpstr, "Physical Address. . . . . . . . . : ") + Len("Physical Address. . . . . . . . . : ") '获取网卡物理地址的起始位置tmpstr = Mid(tmpstr, ss, 17) '用mid把网卡物理地址提取MsgBox "您的网卡物理地址是:" & tmpstr '输出...End Sub我们用的路由上网,不能看到外面的ip,用ipconfig命令看到的是一下内容Windows IP Configuration Host Name . . . . . . . . . . . . : talent Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Unknown IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : NoEthernet adapter 本地连接: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Realtek RTL8139/810x Family Fast Ethernet NIC Physical Address. . . . . . . . . : 00-0C-6E-73-17-29 DHCP Enabled. . . . . . . . . . . : No IP Address. . . . . . . . . . . . : 192.168.1.78 Subnet Mask . . . . . . . . . . . : 255.255.255.0 IP Address. . . . . . . . . . . . : 10.0.0.7 Subnet Mask . . . . . . . . . . . : 255.0.0.0 Default Gateway . . . . . . . . . : 10.0.0.138 DNS Servers . . . . . . . . . . . : 61.134.1.4 61.134.1.9 http://community.csdn.net/Expert/topic/3308/3308572.xml?temp=.9631922电脑中有多个"适配器",它是不能区别那个连电信的那个XX的,只能得到IP和是否正在使用其中的IPAddress和IPEnabled 自定义类型作为参数提示“类型不符” 如何用纯vb语句删除文件呀,文件可为任意类型。(不是调用dos命令删除文件) 在过程中如何获得当前过程名? 请问 hookdll.dll 里的函数都是些什么如何调用? 怎么样确认文件正在使用? 请教:vb多线程问题 正在学习SmartUI和Janus Gridex 2000的人进来 怎样安装office 两个困扰着我的问题(分数会再加) 取得动态分配的IP及SHELL的应用?? type类型用法?? 如何让一个进程成为“当前”。
另外:
ping 机器名
也可以
一般的VB例程获得的本机IP都是局域网内的IP(如192.168.0.5之类的),而非动态IP.我也希望哪位高手有此源码?只要本机能连上互联网就能检测其IP,不管这个IP是私有IP还是公网IP.就像花生壳之类的动态域名客户端软件,它们都可以检测到的.严重关注中..............................................
确定操作系统平台和版本
检测桌面和监视器大小和分辨率的改变
检测并管理即插即用设备
监视电池和电源状态
SysInfo 控件的特性
使用 SysInfo 控件,可以监视操作系统提供的信息,并对系统生成的事件作出响应。该控件的特性可分为如下几个部分: 操作系统属性(例如 OSVersion 和 WorkAreaHeight 属性)。
与系统的改变有关的事件(例如 DisplayChanged、TimeChanged 和SettingChanged 事件)。
即插即用事件(例如 DeviceArrival、DeviceRemoveComplete 事件)。
电源状态事件和属性(例如 PowerSuspend 和 PowerResume 事件,以及 ACStatus 和 BatteryStatus 属性)。
下面几节将介绍如何使用上文中描述的事件和属性。操作系统属性和事件
SysInfo 控件的操作系统属性和事件可以用于检测当前操作系统及其版本、某些全局设置的改变,或者桌面大小和分辨率的改变。操作系统平台和版本属性
下表列出了可以用于确定当前的操作系统平台和版本的属性:类别 项目 描述
属性 OSPlatform 返回值标识应用程序运行在什么操作系统上。
OSVersion 返回值标识运行应用程序的操作系统的版本号。
OSBuild 返回值提供运行应用程序的操作系统的编译序号。
详细信息 “SysInfo 应用实例 1:检测当前操作系统和版本”提供了如何使用这些属性的示例。桌面大小和屏幕分辨率属性和事件
下表列出了专门用于管理桌面和屏幕分辨率的操作系统属性和事件:类别 项目 描述
属性 ScrollBarSize 返回滚动条宽度的系统量度,以缇为单位。
WorkAreaHeight 返回可见桌面的高度,这是为 Windows 95 和 Windows NT 4.0 任务条作了调整之后的值。
WorkAreaLeft 返回可见桌面左边界的坐标,这是为 Windows 95 和 Windows NT 4.0 任务条作了调整之后的值。
WorkAreaTop 返回可见桌面上边界的坐标,这是为 Windows 95 和 Windows NT 4.0 任务条作了调整之后的值。
WorkAreaWidth 返回可见桌面宽度,这是为 Windows 95 和 Windows NT 4.0 任务条作了调整之后的值。
事件 DisplayChanged 在系统屏幕分辨率发生变化时产生该事件。
SysColorsChanged 当应用程序或控制面板改变了系统颜色设置时产生该事件。
当屏幕的分辨率发生改变时,将触发 DisplayChanged 事件。在 DisplayChanged 事件中使用 WorkAreaHeight、WorkAreaWidth、WorkAreaRight 和 WorkAreaLeft 属性即可确定当前的系统大小(可用的屏幕区域),并进行相应的调整。如果在 Windows 95 或 Windows NT 4.0 中任务条是可见的,则它不被算在可用的屏幕区域之内。如果用户通过 Windows 95 或 Windows NT 4.0 的控制面板中的“显示”设置改变了滚动条的大小,则有可能需要更新显示区域以正确地放置滚动条。可以在 DisplayChanged 事件中使用 ScrollBarSize 属性进行调整。详细信息 在“SysInfo 应用实例 2:屏幕大小和分辨率改变时进行相应调整”一节中提供了如何运用这些属性和事件的示例。管理硬件配置和即插即用事件
如果操作系统支持该特性,则即插即用事件提供了管理系统硬件配置变化的手段。例如,硬件配置改变、系统正在连接或断开,或者 PC 插槽中正在插入或拔出 PC 卡。下表列出了专门用于管理硬件配置和即插即用设备的 SysInfo 控件事件。事件 描述
ConfigChanged 当系统的硬件配置文件改变时产生。
ConfigChangeCancelled 当操作系统发送硬件配置变化被取消的消息时产生。
DeviceArrival 当系统中添加新设备时产生。
DeviceEventOther 未映射到通用事件的通告事件。
DevModeChange 当设备模式设置发生改变时产生
DeviceQueryRemove 从系统中删除设备之前产生.
DeviceQueryRemoveFailed 当 DeviceQueryRemove 事件的代码取消设备删除时产生。
DeviceRemoveComplete 在设备被删除之后产生。
DeviceRemovePending 当所有应用程序均同意删除某个设备,且该设备即将被删除时产生。
QueryChangeConfig 请求改变当前的硬件配置文件时产生。
在 Windows 95 中,用 ConfigChanged 事件通告硬件配置文件的改变。在连接和断开时,笔记本电脑通常使用不同的硬件配置文件。例如,在连接时,笔记本电脑也许会连接到网络、外部监视器上,或访问光盘驱动器。SysInfo 控件的与设备有关的事件提供了硬件配置中的设备改变反馈信息。在硬件添加到系统中之后,应用程序可以动态地使用它。使用电源状态属性和事件
电源状态事件和属性能用来监视台式或笔记本电脑的交流电或电池电源状态。笔记本电脑通常都实现了电源挂起、电源恢复和电池状态等特性,然而应用程序应该适用于所有类型的计算机。下表列出了 sysInfo 控件关于电池和电源状态的事件和属性:类别 项目 描述
属性 ACStatus 返回值指出系统正在使用交流电还是电池电源。
BatteryFullTime 返回值指示电池的完全充电时间。
BatteryLifePercent 返回电池所剩电能占完全充满时的百分比。
BatteryLifeTime 返回值指示电池的剩余使用时间。
BatteryStatus 返回值给出电池的充电状态。
事件 PowerQuerySuspend 在系统电源准备挂起时产生。
PowerResume 当系统结束挂起模式时产生。
PowerStatusChanged 当系统的电源状态变化时产生。
PowerSuspend 在系统即将进入挂起模式之前产生。
在电源挂起时,电源事件可为应用程序提供一定的安全保护。PowerSuspend 事件通知应用程序电源即将被挂起。这样就可以在电源挂起前保存应用程序的状态,或保存尚未存储的文件。PowerStatusChanged 事件通知交流电和电池电源状态的改变。如果电池能量已经很少,就需要保存数据。详细信息 “Sysinfo 应用实例 3:监视电池电源状态”提供了如何用这些属性和事件监视和管理电池和交流电电源变化的示例。
一个简单方法....
首先用 Shell("ipconfig -all > C:\ipinfo.txt")再把此文件读入,去看看里面的内容
然后用Instr 和Mid函数把你要的数据提取出来,包括网卡物理地址呦,嘿嘿~~~然后把那个文件kill掉就可以了~简单方便,,,
Private Sub Command1_Click()Shell "cmd /c ipconfig -all > c:\2.txt", vbHide '用cmd里的ipconfig显示网络详细细心,并输出到c:\2.txtTimer1.Enabled = True '为了实现延时,我用了timer控件,因为上面那个命令运行需要时间,我设置了1000毫秒
End SubPrivate Sub Timer1_Timer()
Timer1.Enabled = False '把timer停了Open "c:\2.txt" For Input As #1 '输入文件Do While Not EOF(1)
Line Input #1, txt
tmpstr = tmpstr & vbCrLf & txt
LoopClose #1Kill "c:\2.txt"ss = InStr(tmpstr, "Physical Address. . . . . . . . . : ") + Len("Physical Address. . . . . . . . . : ") '获取网卡物理地址的起始位置
tmpstr = Mid(tmpstr, ss, 17) '用mid把网卡物理地址提取
MsgBox "您的网卡物理地址是:" & tmpstr '输出...End Sub
我们用的路由上网,不能看到外面的ip,用ipconfig命令看到的是一下内容
Windows IP Configuration Host Name . . . . . . . . . . . . : talent Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Unknown IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : NoEthernet adapter 本地连接: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Realtek RTL8139/810x Family Fast Ethernet NIC Physical Address. . . . . . . . . : 00-0C-6E-73-17-29 DHCP Enabled. . . . . . . . . . . : No IP Address. . . . . . . . . . . . : 192.168.1.78 Subnet Mask . . . . . . . . . . . : 255.255.255.0 IP Address. . . . . . . . . . . . : 10.0.0.7 Subnet Mask . . . . . . . . . . . : 255.0.0.0 Default Gateway . . . . . . . . . : 10.0.0.138 DNS Servers . . . . . . . . . . . : 61.134.1.4 61.134.1.9
电脑中有多个"适配器",它是不能区别那个连电信的那个XX的,只能得到IP和是否正在使用
其中的IPAddress和IPEnabled