python 파충류캠퍼스 네트워크 자동 연결 스 크 립 트 의 튜 토리 얼 을 실현 합 니 다.

배경
요즘 학교 캠퍼스 네트워크 는 어떤 상황 인지 자꾸 끊 기 는 경우 가 많다.끊 길 때마다 웹 브 라 우 저 를 수 동 으로 열 고 계 정 비밀 번 호 를 다시 입력 하고 다시 로그 인 해 야 합 니 다.시스템 문 제 는 해결 할 방법 이 없 지만 캠퍼스 네트워크 에 자동 으로 로그 인 하 는 간단 한 python 스 크 립 트 를 쓸 수 있 습 니 다.매번 끊 긴 후에 임의의 웹 페이지 를 열 면 바로 이 페이지 다.

구현 코드

#-*- coding:utf-8 -*-
__author__ = 'pf'
import time
import requests
class Login:
 #   
 def __init__(self):
  #      ,    
  self.every = 10
 #    
 def login(self):
  print self.getCurrentTime(), u"     ..."
  url="http://222.24.19.190:8080/portal/pws?t=li"
  #   
  headers={
  'Host':"222.24.19.190:8080",
  'User-Agent':"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0",
  'Accept':"application/json, text/javascript, */*; q=0.01",
  'Accept-Language':"zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
  'Accept-Encoding':"gzip, deflate",
  'Referer':"http://222.24.19.190:8080/portal/index_default.jsp",
  'Content-Type':"application/x-www-form-urlencoded",
  'X-Requested-With':"XMLHttpRequest",
  'Content-Length':"291",
  'Connection':"close"
  }
  #     
  payload={
  'userName':'1403810041',
  'userPwd':'MTk4NDEy',
  'userurl':'http%3A%2F%2Fwww.msn.com%3Focid%3Dwispr&userip=222.24.52.200',
  'portalProxyIP':'222.24.19.190',
  'portalProxyPort':'50200',
  'dcPwdNeedEncrypt':'1',
  'assignIpType':'0',
  'appRootUrl':'=http%3A%2F%2F222.24.19.190%3A8080%2Fportal%2F',
  'manualUrlEncryptKey':'rTCZGLy2wJkfobFEj0JF8A%3D%3D'
  }
  try:
   r=requests.post(url,headers=headers,data=payload)
   print self.getCurrentTime(),u'   ...           '
  except:
   print("error")
 #          
 def canConnect(self):
  try:
   q=requests.get("http://www.baidu.com")
   if(q.status_code==200):
    return True
   else:
    return False
  except:
   print 'error'
 #      
 def getCurrentTime(self):
  return time.strftime('[%Y-%m-%d %H:%M:%S]',time.localtime(time.time()))
 #   
 def main(self):
  print self.getCurrentTime(), u"Hi,          "
  while True:
   self.login()
   while True:
    can_connect = self.canConnect()
    if not can_connect:
     print self.getCurrentTime(),u"   ..."
     self.login()
    else:
     print self.getCurrentTime(), u"    ..."
    time.sleep(self.every)
   time.sleep(self.every)
login = Login()
login.main()
3.해결 절차
우선 가방 을 잡 을 도구 가 필요 합 니 다.제출 한 데이터 와 제출 한 url 주 소 를 캡 처 해 야 합 니 다.여기 서 사용 하 는 것 은 Firefox 브 라 우 저의 httpforx 플러그 인 입 니 다.

Firefox 브 라 우 저 로 로그 인 페이지 를 열 고 httpforx 플러그 인 을 엽 니 다.페이지 에 계 정과 비밀 번 호 를 입력 하고 온라인 을 클릭 한 후 httpforx 에 기 록 된 Method 가 POST 라 는 것 을 주의 하 세 요.우리 가 기록 해 야 할 것 은 POST Data 의 userName 과 userPwd 입 니 다.Headers 의 데이터 입 니 다.POST 가 도착 한 URL 주소 도 있 습 니 다.
그림:


python 의 requests 라 이브 러 리 를 사 용 했 습 니 다.
가 져 온 URL 주소,userName,userPwd,Headers 를 코드 에 해당 하 는 위치 에 입력 합 니 다.

그림 과 같이 python 프로그램 을 직접 실행 할 수 있 습 니 다.

또는 pyinstaller 라 이브 러 리 로 exe 파일 을 만 들 고 실행 할 수 있 습 니 다.그림:


총화
나 는 프로그램 이 10s 간격 으로 인터넷 을 연결 할 수 있 는 지 확인 할 수 있 도록 고정 순환 을 설정 했다.연결 할 수 있 으 면'모든 정상'을 출력 한 다음 에 순환 을 하고 연결 할 수 없 으 면'인터넷 이 끊 겼 다'를 출력 한 다음 에 다시 연결 할 수 있다.우 리 는 프로그램 설정 에 대해 자동 으로 시작 할 수 있다.이렇게 되면 켜 도 더 이상 수 동 으로 인터넷 을 연결 할 필요 가 없다.
이상 이 python 파충류캠퍼스 네트워크 자동 연결 스 크 립 트 를 실현 하 는 튜 토리 얼 은 바로 편집장 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기