| Server IP : 77.68.64.21 / Your IP : 216.73.217.59 Web Server : Apache System : Linux hp3-wp-1011352.hostingp3.local 3.10.0-1160.144.1.el7.tuxcare.els9.x86_64 #1 SMP Fri Jul 10 17:06:31 UTC 2026 x86_64 User : csh2516497 ( 2094697) PHP Version : 8.3.30 Disable Function : shell_exec,exec,system,popen,set_time_limit MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/ruby/vendor_ruby/facter/util/ |
Upload File : |
require 'facter/util/file_read'
module Facter::Util::DHCPServers
def self.gateway_device
interface = nil
if routes = Facter::Util::FileRead.read('/proc/net/route')
routes.each_line do |line|
device, destination = line.split(' ')
if destination == '00000000'
interface = device
break
end
end
end
interface
end
def self.devices
if Facter::Core::Execution.which('nmcli')
Facter::Core::Execution.exec("nmcli d").split("\n").select {|d| d =~ /\sconnected/i }.collect{ |line| line.split[0] }
else
[]
end
end
def self.device_dhcp_server(device)
if Facter::Core::Execution.which('nmcli')
# If the version is >= 0.9.9, use show instead of list
if is_newer_nmcli?
Facter::Core::Execution.exec("nmcli -f all d show #{device}").scan(/dhcp_server_identifier.*?(\d+\.\d+\.\d+\.\d+)$/).flatten.first
else
Facter::Core::Execution.exec("nmcli -f all d list iface #{device}").scan(/dhcp_server_identifier.*?(\d+\.\d+\.\d+\.\d+)$/).flatten.first
end
end
end
def self.network_manager_state
# If the version is >= 0.9.9, use g instead of nm
if is_newer_nmcli?
output = Facter::Core::Execution.exec('nmcli -t -f STATE g 2>/dev/null')
else
output = Facter::Core::Execution.exec('nmcli -t -f STATE nm 2>/dev/null')
end
return nil unless output
output.strip
end
def self.nmcli_version
if version = Facter::Core::Execution.exec("nmcli --version")
version.scan(/version\s(\d+)\.?(\d+)?\.?(\d+)?\.?(\d+)?/).flatten.map(&:to_i)
end
end
def self.is_newer_nmcli?
version = nmcli_version
version && (version[0] > 0 || version[1] > 9 || (version[1] == 9 && version[2] >= 9))
end
end