ユーザ用ツール

サイト用ツール


ja:python:ネットワーク情報取得

Python-ネットワーク情報取得

PythonでIPアドレスとかMACアドレスを取得する場合の方法。
ソケット作ってゴニョゴニョする。
Linuxの場合ね。Windowsの場合はよーわからんです。

import socket
import fcntl
import sys
import struct
 
nicname = 'eth0'
 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 
ip = fcntl.ioctl(s.fileno(), 0x8915, (nicname+'\0'*32)[:32])
print socket.inet_ntoa(ip[20:24]) # IPアドレス
 
mac = fcntl.ioctl(s.fileno(), 0x8927, struct.pack('256s', nicname[:15]))
print ''.join(['%02x' % ord(char) for char in mac[18:24]]) # MACアドレス(区切り無し)
print ''.join(['%02x:' % ord(char) for char in mac[18:24]])[:-1] # MACアドレス(:区切り)
 
hostname = socket.gethostname()
print hostname # ホスト名
ja/python/ネットワーク情報取得.txt · 最終更新: 2014/12/04 01:22 by makoto