pb中獲得本機IP地址的另一個方法

來源:互聯網
上載者:User

 pb中獲得本機IP地址的另一個方法

一般人多用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[i]
    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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.