# Script to get some extra information about the IP-Adress of your Counter-Strike Source server
# Script made by Mookie@Efnet Contact me for more information
# Suggestions are always welcome, post them on the forum on egghelp.org
# Updated 2007-02-20 by Pixelz@EFnet
# Settings
# Bind key? Default: !ip
set game(trigger) "!ip"
# Get-url timeout. Recommed to keep this as default
set game(timeout) "60000"
#########################################################
## Don't edit below unless you know what you're doing. ##
#########################################################
bind pub - $::game(trigger) lookup
proc lookup {nick uhost hand chan arg} {
global game
# Check if $arg exists
if {![regexp -- {^(.+?):(.+?)$} $arg]} { putmsg $chan "Right format is: $::game(trigger) IP"; return }
# Set formdata
set formdata [::http::formatQuery search $arg type server]
# Going to url
::http::config -useragent "Mozilla/4.0"
if {[catch {set tok [::http::geturl http://www.game-monitor.com/search.php?$formdata -timeout $::game(timeout)]} error]} {
putlog "Error trying connect to url: $error"
return 1
}
if {[::http::ncode $tok] != 200} {
putlog "Error connecting to url: [::http::code $tok]"
::http::cleanup $tok
return 1
}
# Went to url, setting data
set data [::http::data $tok]
# Cleaning
::http::cleanup $tok
# Regex time
foreach "- title players map gamename" [regexp -all -inline -expanded -- {
<tr\sclass="search_result.+? # find the part where the info is
/GameServer/.+?/GameServer/.+?>(.+?)<.+? # server name
<tr\sclass="search_result.+? # jump to the next part
color=.+?(\d+?/\d+?)[^0-9].+? # players
<a\shref="/MapSearch/.+?>(.+?)<.+? # map name
title="(.+?)" # game name
} $data] {
lappend matches [list $title $players $map $gamename]
}
# Shout the result
if {![info exists matches]} {
putmsg $chan "Did not find anything for $arg"
return 1
} else {
foreach match [lrange $matches 0 2] {
foreach "title players map gamename" $match {
putmsg $chan "\002Title\002: [join $title] \002Map\002: [join $map] \002Players\002: [join $players]"
}
}
if {[llength $matches] > 3} {
putmsg $chan "Found [expr "[llength $matches] - 3"] more match(es) but I'm not gonna show them to you :P"
}
}
}