summaryrefslogtreecommitdiffstats
path: root/scripts/dcc_ip.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/dcc_ip.pl')
-rw-r--r--scripts/dcc_ip.pl61
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