diff --git a/agent_based/checkpoint_vsx_system.py b/agent_based/checkpoint_vsx_system.py
index 92386e54dedfe7f3e5aa9672e461128711221dfd..0ae62e0f660907906aea93f8d0f9dfdf8a47aec5 100644
--- a/agent_based/checkpoint_vsx_system.py
+++ b/agent_based/checkpoint_vsx_system.py
@@ -87,7 +87,7 @@
 # }
 #
 
-import re
+import ipaddress
 import time
 from dataclasses import dataclass
 from typing import List, Dict, Optional, Tuple
@@ -189,12 +189,13 @@ def check_checkpoint_vsx_system(item, params, section: Dict[str, CheckpointVsx])
         yield Result(state=State(params['state_sic_not_established']), notice='SIC not established')
 
     if vsx.vsxStatusVsType.lower() in ['virtual system', 'vsx gateway']:
-        ipv4 = re.compile('^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')
         yield Result(state=State.OK, notice=f'System name: {item}')
-        if ipv4.match(vsx.vsxStatusMainIP):
+        try:
+            ipaddress.ip_address(vsx.vsxStatusMainIP)
             yield Result(state=State.OK, summary=f'Main IP: {vsx.vsxStatusMainIP}')
-        else:
+        except ValueError:
             yield Result(state=State.OK, notice=f'Main IP: {vsx.vsxStatusMainIP}')
+
         yield Result(state=State.OK, summary=f'VS ID: {vsx.vsxStatusVSId}',
                      details=f'Virtual system ID: {vsx.vsxStatusVSId}')
         yield Result(state=State.OK, notice=f'System type: {vsx.vsxStatusVsType}')
diff --git a/checkpoint_vsx_system.mkp b/checkpoint_vsx_system.mkp
index 881a9b058643bae572bc85d3bf418bb0e53d52cf..0ff7802844a357434be58fbf2dd9f32fe56a1629 100644
Binary files a/checkpoint_vsx_system.mkp and b/checkpoint_vsx_system.mkp differ