Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1038726
  • 博文数量: 836
  • 博客积分: 43880
  • 博客等级: 大将
  • 技术积分: 5485
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-20 17:36
文章分类

全部博文(836)

文章存档

2011年(1)

2008年(835)

我的朋友

分类: LINUX

2008-08-20 18:24:29


家里有机器,拨号上网,有独立的ip,开了很多服务,想在外面随时访问怎么办?出去的时候记住连线的ip?万一断了线,自动重连以后ip也就变了,那么解决方法也许是用“花生壳”软件。花生壳也有Linux版本,确实是一个选择,但是它相当于是把你的ippublish到网上的,假设你自己对自己的安全不是很放心(况且你也不知道花生壳是否搜集了你的什么信息),而且你的目的也只是小范围使用(比如就你,你家人或者几个要好的朋友)的话,那么这个动态ip完全可以通过个人邮件的方式来传播,本人简单摸索了两个解决方案,一是基于knemo kmail,二是基于udev mail exim4,下面简单介绍一下:

  1.knemo kmail

  knemo是kde下面监控网络的软件,支持事件触发,kmail是kde下面的邮件客户端,支持dcop的脚本调用,配置的步骤如下:

  创建一个自动获得拨号连接ip并通过kmail发送的脚本:

#!/bin/bash

FROM="none"

TO="youname@xxxx.com"

CC="yourfiend@yyyyy.com"

BCC=""

SUBJECT="Today''sPPPaddress"

sleep10s

MESSAGE=`/sbin/ifconfig|/bin/sed-e''/P-t-P/!d''-e''s/^[[:space:]]*inetaddr://g''-e''s/[[:space:]]*P-t-P:.*Mask:.*$//g''`

ATTACHMENT="[][]"

dcopkmailMailTransportServiceIface"sendMessage(QString,QString,QString,QString,QString,QString,KURL::List)""$FROM""$TO""$CC""$BCC""$SUBJECT""$MESSAGE"$ATTACHMENT

  然后将其作为knemo配置的notification当中的对应执行的程序即可。
knemo配置是在kcontrol->internet&network->networkmonitor->Misc面板上。

  2.udev mail exim4

  第一个方式很简单,但是需要你是使用kde并且时刻将自己的桌面开着(因为比需要有knemo和kmail),第二个方式是获取内核的硬件变动,万一断了重新连接,/sys/下面设备文件发生变化就触发,不依赖X和桌面系统。

  exim4的配置这里就不说了,自己网上看。

  对应的发送的脚本(/XXXXX/ppp-address.sh)修改如下:

#!/bin/bash

FROM="none"

TO="youname@xxxxx.com"

CC="yourfriend@yyyyy.com"

BCC=""

SUBJECT="Today''sPPPaddress"

sleep10s

MESSAGE=`/sbin/ifconfig|/bin/sed-e''/P-t-P/!d''-e''s/^[[:space:]]*inetaddr://g''-e''s/[[:space:]]*P-t-P:.*Mask:.*$//g''`

echo"$MESSAGE"|/usr/bin/mail-s"$SUBJECT"-c"$CC"-b"$BCC""$TO"

  udev规则添加:/etc/udev/rules.d/ 下面添加一个规则文件如z100_ppp_ip_letter.rules内容为:

ACTION=="add",SUBSYSTEM=="net",KERNEL=="ppp[0-9]",RUN ="/XXXXX/ppp-address.sh"

(责任编辑:云子)


下载本文示例代码
阅读(225) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~