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を使う
が、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