马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?站点注册
×
一般人多用run("regsvr32 /s MSWINSCK.OCX")注册后,利用这个控件,获得包括IP地址在内的本机各种信息。 这里介绍的是 利用访问注册表的方法,来获得本机的IP地址。因为没有利用别人的控件,程序更“独立”了。 GetEnvironment(ge_env) CHOOSE CASE ge_env.OSType //aix!, hpux!, macintosh!, osf1!, sol2!, windows!, wondowsnt! CASE Windows! gs_OStype = "Windows" CASE WindowsNT! gs_OStype = "WindowsNT" CASE ELSE gs_OStype = "Other" END CHOOSE //使用注册表取本机IP地址 String ls_value = "" String subkeys[] CHOOSE CASE gs_OStype CASE 'Windows' String skey = 'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans' String sname = 'IPAddress' Int i String skey1 ls_value = '' RegistryKeys ( skey, subkeys ) IF UpperBound(subkeys) > 0 THEN FOR i = 1 To UpperBound(subkeys) skey1 = skey+'\'+subkeys IF RegistryGet(skey1,sname,ls_value) = 1 THEN IF ls_value <> '0.0.0.0' THEN EXIT END IF END IF NEXT END IF CASE "WindowsNT" String ls_keynt1 = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards' IF RegistryKeys (ls_keynt1,subkeys ) = 1 THEN IF UpperBound(subkeys) > 0 THEN ls_keynt1 = ls_keynt1+'\'+subkeys[1] END IF END IF //bill Tcpip 可能需要查询 ls_keynt1 字段所有的子项,主要是指:最后一个项 6 在不同的机器上是不一样的 String ls_keynt2 = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\' String ls_keynt3 = '\Parameters\Tcpip' String ls_name_nt1 = 'ServiceName' String ls_name_nt2 = 'IPAddress' String ls_name_nt3 = '' String ls_value2[] IF RegistryGet(ls_keynt1,ls_name_nt1,ls_value) = 1 THEN ls_name_nt3 = ls_keynt2+ls_value+ls_keynt3 IF RegistryGet(ls_name_nt3,ls_name_nt2,RegMultiString!,ls_value2) = 1 THEN ls_value = ls_value2[1] ELSE // 可能有多个ip地址 ls_value = ls_value2[1] + " ; " + ls_value2[2] ls_value = ls_value2[1] END IF ELSE ls_value = '' END IF CASE ELSE ls_value = '' RETURN END CHOOSE gs_ipaddress = ls_value
[此贴子已经被作者于2007-8-21 8:47:16编辑过]
|