mirror of
https://github.com/GNS3/gns3-server
synced 2024-12-24 15:58:08 +00:00
Randomize the 4th and 5th bytes when provided with a base mac address. Fixes #522.
This commit is contained in:
parent
8e3e3c08f8
commit
914fe7e750
@ -28,6 +28,7 @@ import subprocess
|
|||||||
import shlex
|
import shlex
|
||||||
import asyncio
|
import asyncio
|
||||||
import socket
|
import socket
|
||||||
|
import random
|
||||||
import gns3server
|
import gns3server
|
||||||
|
|
||||||
from gns3server.utils import parse_version
|
from gns3server.utils import parse_version
|
||||||
@ -493,9 +494,9 @@ class QemuVM(BaseVM):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
if not mac_address:
|
if not mac_address:
|
||||||
self._mac_address = "00:00:ab:%s:%s:00" % (self.id[-4:-2], self.id[-2:])
|
self._mac_address = "12:34:%02x:%02x:%02x:00" % (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
|
||||||
else:
|
else:
|
||||||
self._mac_address = mac_address
|
self._mac_address = mac_address[:8] + ":%02x:%02x:00" % (random.randint(0, 255), random.randint(0, 255))
|
||||||
|
|
||||||
log.info('QEMU VM "{name}" [{id}]: MAC address changed to {mac_addr}'.format(name=self._name,
|
log.info('QEMU VM "{name}" [{id}]: MAC address changed to {mac_addr}'.format(name=self._name,
|
||||||
id=self._id,
|
id=self._id,
|
||||||
|
@ -30,19 +30,20 @@ def force_unix_path(path):
|
|||||||
return posixpath.normpath(path)
|
return posixpath.normpath(path)
|
||||||
|
|
||||||
|
|
||||||
def macaddress_to_int(macaddress):
|
def macaddress_to_int(mac_address):
|
||||||
"""
|
"""
|
||||||
Convert a macaddress with the format 00:0c:29:11:b0:0a to a int
|
Convert a macaddress with the format 00:0c:29:11:b0:0a to a int
|
||||||
|
|
||||||
:param macaddress: The mac address
|
:param mac_address: The mac address
|
||||||
|
|
||||||
:returns: Integer
|
:returns: Integer
|
||||||
"""
|
"""
|
||||||
return int(macaddress.replace(":", ""), 16)
|
return int(mac_address.replace(":", ""), 16)
|
||||||
|
|
||||||
|
|
||||||
def int_to_macaddress(integer):
|
def int_to_macaddress(integer):
|
||||||
"""
|
"""
|
||||||
Convert an integer to a macaddress
|
Convert an integer to a mac address
|
||||||
"""
|
"""
|
||||||
return ":".join(textwrap.wrap("%012x" % (integer), width=2))
|
return ":".join(textwrap.wrap("%012x" % (integer), width=2))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user