Python 指令碼提供應用程式設計發展介面 (API)

GFI LanGuard 嵌入了大部分預設 Python 實作(又稱 CPython,其地址為:http://go.gfi.com/?pageid=pythorg)。 目前我們使用 Python 2.5 版。因此,大多數現有 Python 指令碼使用的 GFI LanGuard 中都有小幅度修改。 大多數重要的修改是指令碼必須具有 main() 函數,該函數傳回 10

安全性掃描器模組(弱點檢查和安全應用程式資訊)使用的所有 Python 指令碼都可存取以下全域變數:

  • ComputerIP
  • ComputerName
  • LNSSDir
  • localProgramFilesPath
  • localWindowsPath
  • localSystem32Path
  • 使用者
  • 密碼
範例

ComputerIP = '127.0.0.1'

ComputerName = 'WXPSandbox"

LNSSDir = 'C:\\Program Files\\GFI\\LanGuard\\'

localProgramFilesPath = 'C:\\Program Files'

localWindowsPath = 'C:\\WINDOWS'

localSystem32Path = 'C:\\WINDOWS\\system32'

User = ''

Password = ''

使用這些全域變數,以存取掃描電腦的名稱或 IP 位址、需要連線到掃描電腦的認證。

GFI LanGuard 全域函數可用於 Python 指令碼,並可作為 GlobalFunctions 物件的方法。 即:

# 使用全域函數。

def main():

"""傳回值:

* 0 - false,失敗

* 1 - true,成功"""

result = 0

# 顯示文字。

GlobalFunctions.echo("您好!")

# 將指定文字新增到記錄檔。

GlobalFunctions.writetolog("已啟動 Python 指令碼。")

# 將指定文字新增到狀態列。

GlobalFunctions.statusbar("您好狀態列!")

# 將名稱類似於第二個參數的子節點新增到目前弱點。

GlobalFunctions.addlistitem("", "弱點描述。")

# 變更目前弱點的說明。

GlobalFunctions.setdescription("已安裝的數據機清單")

GlobalFunctions.writetolog("Python script finished.")

result = 1

return(result)

GFI LanGuard 也提供了 Python 指令碼的 COM 用戶端 API,形式為 pywin32。

附註

Python 指令碼可透過win32com.client使用GFI LanGuard COM 指令碼程式庫。 如需詳細資訊,請參閱 指令碼處理物件。

範例

# 使用 LanGuard COM 物件GlbObj.Socket 執行 DNSTCP/IP 網路使用的資料庫,可以將主機名稱轉換為 IP 號並提供其他網域相關的資訊。 查閱。

def main():

"""傳回值:

* 0 - false,失敗

* 1 - true,成功"""

result = 0

import win32com.client

socket = win32com.client.Dispatch("GlbObj.Socket.1")

print(socket.DnsLookup('gfi.com'))

result = 1

return(result)

Pywin32

# Hello world for pywin32.

def main():

"""傳回值:

* 0 - false,失敗

* 1 - true,成功"""

result = 0

import win32com.client

strComputer = "."

objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")

objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")

colItems = objSWbemServices.ExecQuery("Select * from Win32_PhysicalMemory")

for objItem in colItems:

print("Capacity: %s\n" % objItem.Capacity)

result = 1

return(result)

附註

對於其他 Pywin32 檔案,請參閱: