/usr/share/checkbox/scripts/network_info is in checkbox 0.13.7.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #!/usr/bin/python
import os
import sys
import socket
import fcntl
import struct
SYS_PATH = '/sys/class/net'
def _read_file(file):
source = open(file, 'r')
content = source.read()
source.close()
return content
def get_connected(interface):
STATUS = ('No', 'Yes')
carrier_file = os.path.join(SYS_PATH, interface, 'carrier')
carrier = int(_read_file(carrier_file))
return STATUS[carrier]
def get_ip_address(interface):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', interface[:15])
)[20:24])
def get_mac_address(interface):
address_file = os.path.join(SYS_PATH, interface, 'address')
return _read_file(address_file)
def main(args):
for interface in args:
connected = get_connected(interface)
print "Interface: %s" % interface
print "Connected: %s" % connected
try:
print "IP: %s" % get_ip_address(interface)
except IOError:
print "IP: n/a"
print "MAC: %s\n" % get_mac_address(interface)
return 0
if __name__ == "__main__":
sys.exit(main(sys.argv[1:]))
|