botpop/builtins.rb
2015-08-12 15:35:52 +02:00

44 lines
914 B
Ruby

# encoding: utf-8
class Botpop
module Builtins
def self.dos(ip, duration)
`timeout #{duration} hping --flood '#{ip}' 2>&1`
end
def self.ping(ip)
Net::Ping::External.new(ip).ping?
end
def self.intra_state
Net::Ping::External.new("intra.epitech.eu").ping? ? "Intra ok" : "Intra down"
end
def self.trace ip
`tracepath '#{ip}'`.to_s.split("\n")
end
def self.get_msg m
URI.encode(m.params[1..-1].join(' ').gsub(/\![^ ]+ /, ''))
end
def self.get_ip m
m.params[1..-1].join(' ').gsub(/\![^ ]+ /, '').gsub(/[^[:alnum:]\-\_\.]/, '')
end
def self.get_ip_from_nick m
nick = get_ip m
ip = m.target.users.keys.find{|u| u.nick == nick rescue nil}.host rescue nil
return {nick: nick, ip: ip}
end
end
end
class MissingConfigurationZone < RuntimeError
end
class MissingConfigurationEntry < RuntimeError
end