Giter Club home page Giter Club logo

esdialergd's Introduction

EsDialerGD

广东天翼校园三方客户端(登陆器)

告示

由于本人错误地选择了MIT协议,导致部分有一定“商业头脑”的同学将本工程源码进行二次包装、再分发并收费

然而这不是我所希望的,也与我开源EsDialerGD的出发点相违背。

因此决定停止更新EsDialerGD,以作为对自己错误行为的惩戒。

后会有期:)

简介

鉴权协议分析:https://4fk.me/post/gdes-auth-proto.html

功能更新

  • 2018-09-26:增加对curl命令行调用的支持。如果不想使用libcurl,可在Makefile中的LDFLAGS加入-DUSE_CURL_CMD,并删除-lcurl

  • 2018-09-18:修复一个假性登陆成功导致的0间隔重试bug

  • 2018-09-17:修改重试机制:若先前登陆成功,则掉线后忽略重试间隔立即重连。

  • 2018-09-14:增加自动生成ClientID与MAC地址功能;增加对支持302跳转的支持;删除ESD_DEBUG选项,直接显示所有调试信息;删除连通性检查功能。

  • 2018-05-30:增加自定义接口地址功能。

  • 2018-05-24:EsDialerGD发布。

下载

仅macOS和Win32。 地址:https://github.com/claw6148/EsDialerGD/releases

使用方式

程序通过环境变量的方式进行参数传递

必选变量

  • ESD_USERID 用户名

  • ESD_PASSWD 密码

可选变量

  • ESD_CDC_DOMAIN 学校拼音首字母小写

  • ESD_CDC_AREA 区号

  • ESD_CDC_SCHOOLID 学校ID

  • ESD_RETRY_COUNT 重试次数;0-不重试直接退出;(-1)-无限重试;默认值:-1

  • ESD_RETRY_DELAY 重试间隔(秒);默认值:30

  • ESD_TICKET_URL Ticket接口URL

  • ESD_AUTH_URL Auth接口URL

  • ESD_KEEP_URL Keep接口URL

  • ESD_TERM_URL Term接口URL

  • ESD_IPV4_ADDR 客户端IP地址

备注:

  1. ESD_CDC_DOMAINESD_CDC_AREAESD_CDC_SCHOOLID的获取需要抓官方客户端的包,在HTTP Headers里,不过测试发现三者留空也不影响。
  2. 有的学校不能由程序动态获取上面加粗项的值,这里提供手动设置功能。手动指定的项将在动态获取阶段中直接跳过。

例子

将以下内容写到一个脚本文件内,保存到与EsDialer二进制文件同级目录下。

UNIX(对应wrapper-unix.sh

#!/bin/sh

export ESD_USERID=foo
export ESD_PASSWD=bar

# export ESD_RETRY_COUNT=-1
# export ESD_RETRY_DELAY=20

# export ESD_TICKET_URL=http://XXX/ticket.cgi
# export ESD_AUTH_URL=http://XXX/auth.cgi
# export ESD_KEEP_URL=http://XXX/keep.cgi
# export ESD_TERM_URL=http://XXX/term.cgi
# export ESD_IPV4_ADDR=XXX.XXX.XXX.XXX

# 运行
./EsDialer

Windows(对应wrapper-win.bat

@echo off

set ESD_USERID=foo
set ESD_PASSWD=bar

REM set ESD_RETRY_COUNT=-1
REM set ESD_RETRY_DELAY=20

REM set ESD_TICKET_URL=http://XXX/ticket.cgi
REM set ESD_AUTH_URL=http://XXX/auth.cgi
REM set ESD_KEEP_URL=http://XXX/keep.cgi
REM set ESD_TERM_URL=http://XXX/term.cgi
REM set ESD_IPV4_ADDR=XXX.XXX.XXX.XXX

REM 运行
.\EsDialer

源码

main.c 程序入口

auth.c 鉴权交互逻辑

codec.c 通信数据编解码

md5.c MD5函数

str_extract.c 字符串提取函数

http_req.c HTTP请求

编译方法

程序依赖libcurl,请先装好。

git clone https://github.com/claw6148/EsDialerGD.git
cd EsDialerGD
  1. 本机编译:直接make

  2. 交叉编译:修改Makefile,CROSS=后面添上目标平台前缀,如CROSS=arm-linux-androideabi-,然后make

esdialergd's People

Contributors

claw6148 avatar frankwei98 avatar nihilityt avatar zach14c avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.