Python 指令碼提供應用程式設計發展介面 (API)
GFI LanGuard 嵌入了大部分預設 Python 實作(又稱 CPython,其地址為:http://go.gfi.com/?pageid=pythorg)。 目前我們使用 Python 2.5 版。因此,大多數現有 Python 指令碼使用的 GFI LanGuard 中都有小幅度修改。 大多數重要的修改是指令碼必須具有 main() 函數,該函數傳回 1 或 0。
安全性掃描器模組(弱點檢查和安全應用程式資訊)使用的所有 Python 指令碼都可存取以下全域變數:
範例
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)