val = "{"
for key in values.keys():
val += " " + key + "="
- val += str(values[key])
+ if key in ["PrefixLength"]:
+ val += "%s" % (int(values[key]))
+ else:
+ val += str(values[key])
val += " }"
return val
print "[ %s ]" % (path)
for key in properties.keys():
- if key in ["IPv4", "IPv4.Configuration", "Proxy", "Ethernet"]:
+ if key in ["IPv4", "IPv4.Configuration",
+ "IPv6", "IPv6.Configuration",
+ "Proxy", "Ethernet"]:
val = extract_values(properties[key])
elif key in ["Nameservers", "Nameservers.Configuration",
"Domains", "Domains.Configuration"]:
import dbus
if (len(sys.argv) < 3):
- print "Usage: %s <address> <netmask> <gateway>" % (sys.argv[0])
+ print "Usage: %s <address> <netmask | prefix length> <gateway> [version]" % (sys.argv[0])
sys.exit(1)
bus = dbus.SystemBus()
properties = service.GetProperties()
- print "Setting address %s for %s" % (sys.argv[1], path)
- service.SetProperty("IPv4.Configuration",
- { "Method": "manual", "Address": sys.argv[1],
- "Netmask": sys.argv[2], "Gateway": sys.argv[3]})
+
+ if (len(sys.argv) == 5 and sys.argv[4] == "ipv6"):
+ ipv = 6
+ else:
+ ipv = 4
+
+ print "Setting IPv%d address %s for %s" % (ipv, sys.argv[1], path)
+
+ if (ipv == 4):
+ service.SetProperty("IPv4.Configuration",
+ { "Method": "manual",
+ "Address": sys.argv[1],
+ "Netmask": sys.argv[2],
+ "Gateway": sys.argv[3]})
+ else:
+ service.SetProperty("IPv6.Configuration",
+ { "Method": "manual",
+ "Address": sys.argv[1],
+ "PrefixLength": sys.argv[2],
+ "Gateway": sys.argv[3]})
print