1. 程式人生 > >教你把家裏電腦弄成外網服務器

教你把家裏電腦弄成外網服務器

需要 轉發 pda 發揮 阿裏 brush 改ip 路由器 域名解析



以下代碼為Python腳本,github的下載地址:https://github.com/jibp/DomainNmeResolutionIP,有幫助的話點個星,謝謝!!!



# encoding: utf-8 from aliyunsdkcore import client from aliyunsdkalidns.request.v20150109 import DescribeDomainsRequest,DescribeDomainRecordsRequest,UpdateDomainRecordRequest import json,urllib,re #替換以下參數 下面是操作(阿裏雲域名解析IP的修改) ID="LTAIk9fUCW407" #這邊是key 替換成自己的 Secret="O7z3f1u8YApTLubXKVEMmiu" #替換成自己的 RegionId="cn-hangzhou" #解析記錄的ID,此參數在添加解析時會返回,在獲取域名解析列表時會返回 DomainName="hack.com" #一級域名 替換成自己的 #想要自動修改的主機名和域名類型 HostNameList = [‘python‘] #這邊可以添加二級域名或者"*"所有的都滿足 替換成想設置的二級域名 Types = "A" #解析記錄類型 TTL="1" #生存時間,默認為600秒 ,也就是解析時間,我這邊是1秒(買了解析的會員服務) clt = client.AcsClient(ID,Secret,RegionId) #獲取公網ip def GetLocalIP(): #下面獲取公網IP地址,用了2種方式,防止一個失效報錯 try: IPInfo = urllib.urlopen("http://api.ipify.org/?format=json").read() except IOError: try: IPInfo =urllib.urlopen("https://www.taobao.com/help/getip.php").read() except IOError: IPInfo = "So sorry!!!" theIP =re.findall(r"\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}",IPInfo) nowIP=theIP.pop(0) print nowIP return nowIP #獲取域名列表(暫時無用) def GetDomainList(): DomainList = DescribeDomainsRequest.DescribeDomainsRequest() DomainList.set_accept_format(‘json‘) DNSListJson = json.loads(clt.do_action_with_exception(DomainList)) print DNSListJson #更新域名ip def EditDomainRecord(HostName, RecordId, Types, IP): UpdateDomainRecord = UpdateDomainRecordRequest.UpdateDomainRecordRequest() UpdateDomainRecord.set_accept_format(‘json‘) UpdateDomainRecord.set_RecordId(RecordId) UpdateDomainRecord.set_RR(HostName) UpdateDomainRecord.set_Type(Types) UpdateDomainRecord.set_TTL(TTL) UpdateDomainRecord.set_Value(IP) UpdateDomainRecordJson = json.loads(clt.do_action_with_exception(UpdateDomainRecord)) print UpdateDomainRecordJson #獲取域名信息 def GetAllDomainRecords(DomainName, Types, IP): DomainRecords = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest() DomainRecords.set_accept_format(‘json‘) DomainRecords.set_DomainName(DomainName) DomainRecordsJson = json.loads(clt.do_action_with_exception(DomainRecords)) for HostName in HostNameList: for x in DomainRecordsJson[‘DomainRecords‘][‘Record‘]: RR = x[‘RR‘] Type = x[‘Type‘] if RR == HostName and Type == Types: RecordId = x[‘RecordId‘] print RecordId # 這裏是 修改域名解析的IP,前提是你得在域名廠商先添加一個域名解析 # 如果當前服務器IP和域名解析中IP中一樣會報錯,沒關系,因為兩個IP 一樣,不需要修改阿裏雲域名解析的IP EditDomainRecord(HostName, RecordId, Types, IP) IP = GetLocalIP() GetDomainList() #這個方法是顯示看得 GetAllDomainRecords(DomainName, Types, IP)




--------------------------------------------------------------------------------------------------------------------------------------------

# DomainNmeResolutionIP
# 阿裏雲域名解析(動態)修改IP(遠程家裏電腦小KS)

1.代碼中的ID(Access Key ID)、Secret(Access Key Secret)是您訪問阿裏雲API的密鑰,需要自己在阿裏雲 用戶信息管理--->安全信息管理 中創建

2.代碼中獲取公網ip 用了2中方式,防止有一個失效,大家也可以從網上找其他的api接口獲取公網IP

## 教你把家裏的電腦弄成服務器
1. 確認你家的寬帶用的是公網IP,判斷方式看看 路由器中的公網IP 和在百度搜索的IP 地址 是否一樣,不一樣的話,給客服小姐姐打電話改成公網IP(當然肯定是動態的),一定要是公網IP ,否則一切免談(GG Over)

2. 買個域名(我是在阿裏雲買的),域名幹啥用??當然是解析你家公網IP啊,上面Python腳本主要是抓取你家電腦當前公網IP

3. 域名有了,公網IP有了,那我們先去阿裏雲域名管理區解析下,第一次肯定是手動添加一個域名了+解析IP(這個怎麽解析,大家應該都會哈。。。)

4. 現在還不能從公司訪問你家裏的電腦哈,要把家裏的路由器(我用的小米路由)端口轉發下,比如你要訪問家裏電腦3389端口,那你得在路由器中轉發下,自己設置轉發端口,有人問了為啥要轉發啊,因為電信爺爺不讓你用80端口,所以我們都是域名(IP)+端口 的形式訪問家裏電腦,或者你在IIS上發布的網站

5. 電信爺爺給的公網IP會不定時的變,我們上面的Python腳本現在要發揮作用了,我把這個python腳本部署在家裏筆記本電腦虛擬機中的 Centos7),用了cron 定時1秒跑一下這個腳本,秒解析(前提是你的域名買了秒解析的服務,大家都知道默認的域名解析是需要10分鐘才生效的),阿裏雲的域名 有這個服務,大家升級下你的域名解析服務,也就幾十塊錢,不貴

6.現在的雲服務器有點貴啊,如果你是土豪當我沒說,我家裏現在的寬帶是100M,12G的筆記本內存,固態硬盤啟動。。。。真TM爽,當然我們的成本就是電費+寬帶,你到阿裏雲或者騰訊雲買個服務器 100M的寬帶你看看呢,得不少錢啊,2M、4M 1年 最低的也要 好幾百吧 ,老子窮,不想花那錢,就想小成本弄個速度快內存快的家用服務器,兄弟們把你家裏的電腦用起來吧。。。。。。


7. 如果你有什麽問題不會的 歡迎發郵件給我:[email protected],或者加我QQ。。。。。

## 如果對你又幫助 幫忙點個星啊。。。。。。。。 https://github.com/jibp/DomainNmeResolutionIP

  

教你把家裏電腦弄成外網服務器