ローカルのシステム情報を得る

platformというモジュールで色々調べられます。


とりあえずFefora7-x64にて。
>>> import platform
>>> platform.uname()
('Linux', 'machineName', '2.6.23.15-80.fc7', '#1 SMP Sun Feb 10 16:52:18 EST 2008', 'x86_64', 'x86_64')
>>> platform.system()
'Linux'
>>> platform.node()
'pern'
>>> platform.platform()
'Linux-2.6.23.15-80.fc7-x86_64-with-redhat-7-Moonshine'
 
 

XP-32bit
>>> import platform
>>> platform.uname()
('Windows', 'machineName', 'XP', '5.1.2600', '', '')
>>> platform.system()
'Windows'
>>> platform.node()
'machineName'
>>> platform.platform()
'Windows-XP-5.1.2600-SP2'
 


またはsys.platformでも調べることが出来ます。
Fedora7 -x64
>>> import sys
>>> sys.platform
'linux2'
 
}

XP-32bit
>>> import sys
>>> sys.platform
'win32'
 

wxを使う

wxを使っているなら、こんなのもあります。
Fedora7 -x64
>>> import wx
>>> wx.GetUserId()
u'hajime'
>>> wx.GetOsDescription()
u'Linux 2.6.23.15-80.fc7 x86_64'
>>> wx.GetHostName()
u'machineName'
>>> 
 

XP-32bit
>>> import wx
>>> wx.GetUserId()
u'hajime'
>>> wx.GetOsDescription()
u'Windows XP (build 2600, Service Pack 2)'
>>> wx.GetHostName()
u'machineName'
>>>
 

以下の関数もチェックです。
wx.Now()
wx.GetLocalTime()
wx.DisplaySize()
wx.GetUserId()
wx.GetOsDescription()
wx.GetHostName()
wx.version()

socketを使う

socketを使ってローカルホスト名とIPを得ることもできるようです。
ローカルホスト名やIPアドレスを得る

が、linuxでこの方法を試したのですが127.0.0.1しか返りません。
>>>host = socket.gethostname()
>>>ip = socket.gethostbyname_ex(host)
>>>print ip[2][0]
127.0.0.1
 

これを乗り切るにはちょっとしたトリックが必要。
>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> s.connect(("www.google.com", 80))
>>> ip = s.getsockname()
>>> s.close()
>>> print ip
('192.168.x.x', 55623)
 
ダサいですね。諦めてifconfigから取った方が良さそう。

実行ユーザーの取得

uidを取得
import os
print os.getuid()
ユーザー名
import pwd, os
print pwd.getpwuid(os.getuid())[0]


ビデオカードの情報を取得する(windows)

最終更新:2009年07月08日 13:54
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。