diff options
Diffstat (limited to 'scripts/dcc_ip.pl')
| -rw-r--r-- | scripts/dcc_ip.pl | 61 | 
1 files changed, 61 insertions, 0 deletions
| diff --git a/scripts/dcc_ip.pl b/scripts/dcc_ip.pl new file mode 100644 index 0000000..457c4d3 --- /dev/null +++ b/scripts/dcc_ip.pl @@ -0,0 +1,61 @@ +#!/usr/bin/perl -w +# dcc_ip.pl v0.5 - Copyright (c) ak5 2004 +# License: Public Domain :-) +# +# this scripts gets the current IP before sending a dcc.. +# useful, if you connect through a BNC f.e. +# just load it and it will do it's job if dcc_ip_interface is set correct. +#  + +# This means: If you are connecting through a router: +#          /set dcc_ip_interface router +# (NOT the IP of your router, just the word "router". +# +# If you're on dialup or something other and you see your external +# IP address listed in 'ifconfig's output,  +#          /set dcc_ip_interface <interface> +# (for example ppp0) +# +# requires: /sbin/ifconfig ;) If you have a router, you need lynx also. +# +########## + +use Irssi; +use vars qw($VERSION %IRSSI); +    $VERSION = '0.5'; +    %IRSSI = ( +        authors     => 'ak5', +        contact     => 'meister@hq.kroenk.remove-this-because-of-spam.de', +        name        => 'dcc_ip', +        description => 'This script sets dcc_own_ip when starting a DCC send or chat.'. +		       'set dcc_ip_interface to your external interface, f.e. ppp0.'. +		       'If you are connecting though a router, set it to "router"', +        license     => 'Public Domain', +	url	    => 'http://hq.kroenk.de/?gnu/irssi', +	source      => 'http://hq.kroenk.de/?gnu/irssi/dcc_ip.pl/plaintext', +	changed     => 'Sa 26 Jun 2004 22:27:08 CEST', +    ); + +sub dcc_ip { +    my ($args, $shash, $c, $iface, $cmd, @arg, @ip) = @_; +    @arg = split(" ", $args); +    if (@arg[0] eq "send" || @arg[0] eq "chat") { +        $iface = Irssi::settings_get_str('dcc_ip_interface'); +	 +	if ($iface eq "router") { +		$cmd = `lynx -dump -nolist http://ipid.shat.net/iponly/`; +		$cmd =~ s/[a-zA-Z:\ \n]//g; +	} else { +		$cmd = `/sbin/ifconfig $iface | head -n 2 | tail -n 1`; +		$cmd =~ s/^[a-zA-Z\ ]*\://; +		$cmd =~ s/\ .*$//; +		$cmd =~ s/\n//; +	} +	Irssi::command("^set dcc_own_ip ".$cmd); + +    } +}; + +Irssi::settings_add_str('dcc_ip', 'dcc_ip_interface', "ppp0"); +Irssi::command_bind ('dcc', 'dcc_ip'); +#EOF | 
