查询SQL浏览器以查找命名实例使用的端口号
项目描述
sqlserverport
一个简单的Python模块,用于查询SQL浏览器服务以获取SQL Server实例的端口号。Microsoft的“ODBC驱动程序xx for SQL Server”的Linux实现(仍然)无法解析实例名称,因此Windows用户可以直接这样做
import pyodbc
serverspec = r'myserver\SQLEXPRESS'
conn = pyodbc.connect('DRIVER=ODBC Driver 17 for SQL Server;SERVER={};...'.format(serverspec))
但这在Linux上不会起作用。此模块让我们能够这样做
import pyodbc
import sqlserverport
servername = 'myserver'
serverspec = '{0},{1}'.format(
servername,
sqlserverport.lookup(servername, 'SQLEXPRESS'))
conn = pyodbc.connect('DRIVER=ODBC Driver 17 for SQL Server;SERVER={};...'.format(serverspec))
安装
pip install sqlserverport
示例
# example.py
import sqlserverport
# test data
server_name = "192.168.0.103"
instance_name = "SQLEXPRESS"
try:
result = r"Instance {0}\{1} is listening on port {2}.".format(
server_name,
instance_name,
sqlserverport.lookup(server_name, instance_name),
)
except sqlserverport.BrowserError as err:
result = err.message
except sqlserverport.NoTcpError as err:
result = err.message
print(result)