Skip to content

Instantly share code, notes, and snippets.

@leoleoasd
Created October 24, 2021 13:13
Show Gist options
  • Save leoleoasd/7f9c411e67c637134d2ac7497506e7ed to your computer and use it in GitHub Desktop.
Save leoleoasd/7f9c411e67c637134d2ac7497506e7ed to your computer and use it in GitHub Desktop.
bjut_network.py
#!/usr/bin/env python3
import os
import json
import sys
import argparse
import requests
import re
from os.path import expanduser
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--username')
parser.add_argument('--password')
parser.add_argument('--logout', dest='logout', action='store_true')
parser.set_defaults(logout=False)
parser.add_argument('--remember', dest='remember', action='store_true')
parser.set_defaults(remember=False)
args = parser.parse_args()
if not args.logout:
username = ""
password = ""
if args.username:
username = args.username
if args.password:
password = args.password
if not (args.username and args.password):
try:
with open(expanduser("~/.bjut_network")) as f:
data = json.load(f)
username = data['username']
password = data['password']
except OSError:
pass
except KeyError:
pass
except json.JSONDecodeError:
pass
if not username:
username = input("Username:")
if not password:
password = input("Password:")
if args.remember:
with open(expanduser("~/.bjut_network"), "w") as f:
json.dump({
'username': username,
'password': password
}, f)
resp = requests.post("https://lgn6.bjut.edu.cn/V6?https://lgn.bjut.edu.cn", data={
'DDDDD': username,
'upass': password,
'v46s': 0,
'v6ip': '',
'f4serip': '172.30.201.2',
'0MKKey': ''
})
v6 = r"(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))"
address = re.search(v6, resp.text)
if address:
address = address.group()
else:
print("Failed!")
exit(-1)
# wget 'https://lgn.bjut.edu.cn/' -qO- --post-data "DDDDD=$user&upass=$pwd&0MKKey=Login&v6ip=$r1"
print(address)
resp =requests.post('https://lgn.bjut.edu.cn/', data={
'DDDDD': username,
'upass': password,
'v6ip': address,
'0MKKey': 'Login'
})
if resp.text.find("successfully") != -1:
print("Succeed!")
exit(0)
else:
requests.get("http://lgn.bjut.edu.cn/F.htm")
print("Logout succeeed!")
exit(0)
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment