summaryrefslogtreecommitdiffstats
path: root/glances/plugins/ip/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'glances/plugins/ip/__init__.py')
-rw-r--r--glances/plugins/ip/__init__.py28
1 files changed, 15 insertions, 13 deletions
diff --git a/glances/plugins/ip/__init__.py b/glances/plugins/ip/__init__.py
index 449f01d4..fe79480e 100644
--- a/glances/plugins/ip/__init__.py
+++ b/glances/plugins/ip/__init__.py
@@ -2,7 +2,7 @@
#
# This file is part of Glances.
#
-# SPDX-FileCopyrightText: 2022 Nicolas Hennion <nicolas@nicolargo.com>
+# SPDX-FileCopyrightText: 2024 Nicolas Hennion <nicolas@nicolargo.com>
#
# SPDX-License-Identifier: LGPL-3.0-only
#
@@ -12,7 +12,7 @@
import threading
from ujson import loads
-from glances.globals import urlopen, queue, urlopen_auth
+from glances.globals import queue, urlopen_auth
from glances.logger import logger
from glances.timer import Timer
from glances.timer import getTimeSinceLastUpdate
@@ -66,10 +66,7 @@ class PluginModel(GlancesPluginModel):
def __init__(self, args=None, config=None):
"""Init the plugin."""
- super(PluginModel, self).__init__(
- args=args, config=config,
- fields_description=fields_description
- )
+ super(PluginModel, self).__init__(args=args, config=config, fields_description=fields_description)
# We want to display the stat in the curse interface
self.display_curse = True
@@ -83,8 +80,9 @@ class PluginModel(GlancesPluginModel):
self.public_field = self.get_conf_value("public_field", default=[None])
self.public_template = self.get_conf_value("public_template", default=[None])[0]
self.public_disabled = (
- self.get_conf_value('public_disabled', default='False')[0].lower() != 'false' or
- self.public_api is None or self.public_field is None
+ self.get_conf_value('public_disabled', default='False')[0].lower() != 'false'
+ or self.public_api is None
+ or self.public_field is None
)
self.public_address_refresh_interval = self.get_conf_value(
"public_refresh_interval", default=self._default_public_refresh_interval
@@ -128,14 +126,14 @@ class PluginModel(GlancesPluginModel):
if not self.public_disabled and (
self.public_address == "" or time_since_update > self.public_address_refresh_interval
):
- self.public_info = PublicIpInfo(
- self.public_api, self.public_username, self.public_password
- ).get()
+ self.public_info = PublicIpInfo(self.public_api, self.public_username, self.public_password).get()
self.public_address = self.public_info['ip']
- except (KeyError, AttributeError) as e:
+ except (KeyError, AttributeError, TypeError) as e:
logger.debug("Cannot grab public IP information ({})".format(e))
else:
- stats['public_address'] = self.public_address
+ stats['public_address'] = (
+ self.public_address if not self.args.hide_public_info else self.__hide_ip(self.public_address)
+ )
stats['public_info_human'] = self.public_info_for_human(self.public_info)
elif self.input_method == 'snmp':
@@ -147,6 +145,10 @@ class PluginModel(GlancesPluginModel):
return self.stats
+ def __hide_ip(self, ip):
+ """Hide last to digit of the given IP address"""
+ return '.'.join(ip.split('.')[0:2]) + '.*.*'
+
def msg_curse(self, args=None, max_width=None):
"""Return the dict to display in the curse interface."""
# Init the return message