diff --git a/lib/utilities.py b/lib/utilities.py
index 980d06b..f316b3b 100755
--- a/lib/utilities.py
+++ b/lib/utilities.py
@@ -3,7 +3,23 @@
 from robot.libraries.BuiltIn import BuiltIn
 import imp
 import string
+import random
 
+def random_mac():
+    r"""
+    Return random mac address in the following format.
+    Example: 00:01:6C:80:02:78
+    """
+    return ":".join(map(lambda x: "%02x" % x, (random.randint(0x00, 0xff)
+        for _ in range(6))))
+
+def random_ip():
+    r"""
+    Return random ip address in the following format.
+    Example: 9.3.128.100
+    """
+    return ".".join(map(str, (random.randint(0, 255)
+        for _ in range(4))))
 
 def get_sensor(module_name, value):
     m = imp.load_source('module.name', module_name)
diff --git a/lib/utils.robot b/lib/utils.robot
index 82fcdbd..76195c3 100644
--- a/lib/utils.robot
+++ b/lib/utils.robot
@@ -408,3 +408,34 @@
     Execute Command    rm ${file_path}-${LOG_TIME}
 
     [Return]    ${journal_log}
+
+Mac Address To Hex String
+    [Documentation]   Converts MAC address into hex format.
+    ...               Example
+    ...               Given the following MAC: 00:01:6C:80:02:78
+    ...               This keyword will return: 0x00 0x01 0x6C 0x80 0x02 0x78
+    ...               Description of arguments:
+    ...               i_macaddress  MAC address in the following format 00:01:6C:80:02:78
+    [Arguments]    ${i_macaddress}
+
+    ${mac_hex}=  Catenate  0x${i_macaddress.replace(':', ' 0x')}
+    [return]    ${mac_hex}
+
+IP Address To Hex String
+    [Documentation]   Converts IP address into hex format.
+    ...               Example:
+    ...               Given the following IP: 10.3.164.100
+    ...               This keyword will return: 0xa 0x3 0xa4 0xa0
+    ...               Description of arguments:
+    ...               i_ipaddress  IP address in the following format 10.10.10.10
+    [Arguments]    ${i_ipaddress}
+
+    @{ip}=  Split String  ${i_ipaddress}    .
+    ${index}=  Set Variable  ${0}
+
+    :FOR    ${item}     IN      @{ip}
+    \   ${hex}=  Convert To Hex    ${item}    prefix=0x    lowercase=yes
+    \   Set List Value    ${ip}    ${index}    ${hex}
+    \   ${index}=  Set Variable    ${index + 1}
+    ${ip_hex}=  Catenate    @{ip}
+    [return]    ${ip_hex}
