阿里云 ddns

阿里云 ddns需求 外网 公司 网吧 小黑屋 想访问自己家 闺蜜男友 家庭宽带 没有固定 IP 重启一次猫 路由器 换一个 IP 分析需求 家里的宽带是动态公网 IP 还是小区局域网 IP 检查方式 浏览器打开 ip138 com 看看自己的 IP 记录下来浏览器打开自己路由器 例如 192 168 1 1 账号密码 两个红框相等是公网动态 IP 傻瓜式简单的愉快玩耍 两个红框不等是你们小区或者运营商的局域网 IP 我劝你放弃 因为内网穿透 你会怀疑人生

需求:

外网(公司,网吧,小黑屋)想访问自己家(闺蜜男友,………………)

家庭宽带,没有固定IP,重启一次猫/路由器,换一个IP

分析需求:

家里的宽带是动态公网IP  还是 小区局域网IP

检查方式:

浏览器打开ip138.com   看看自己的IP,记录下来

阿里云 ddns

浏览器打开自己路由器 ,例如(192.168.1.1  账号  密码)

阿里云 ddns

两个红框相等   是公网动态IP(傻瓜式简单的愉快玩耍)

两个红框不等   是你们小区或者运营商的局域网IP (我劝你放弃,因为内网穿透,你会怀疑人生,虽然我会, 可是我不想说怎么做,现在请关闭浏览器,谢谢)

实现方法:

设置路由器端口转发,80端口别研究了,因为家用不给开放这个端口,如果非得玩, 自己找个服务器,做一个反向代理吧

mysql 3306 转发到你的电脑  192.168.250.250:3306

……

没条件呢, 用公网IP地址就可以访问了, 但是,重启路由的时候, 会更换IP, 自己勤看着点,穷屌丝

有条件的高富帅呢, 就去阿里云高额买个30左右一年的域名,做成动态DDNS, 以后访问域名就好了(重点)

这个是有,有杠精该说了, 买个花生壳不好么,我想跟你说 ,花生壳真的非常好, 你壕你去, no zuo no die ,why you try 

买好域名, 自己去设置一下解析, 解析到       250.250.250.250

然后按照下面操作

https://github.com/verylaolu/aliyun_ddns

代码如下

package main

import (
	"encoding/json"
	"errors"
	"fmt"
	alidns20150109 "github.com/alibabacloud-go/alidns-20150109/v2/client"
	openapi "github.com/alibabacloud-go/darabonba-openapi/client"
	"github.com/alibabacloud-go/tea/tea"
	"github.com/jinzhu/configor"
	"io/ioutil"
	"math/rand"
	"net/http"
	"os"
	"os/exec"
	"path/filepath"
	"strings"
	"time"
)
type OpenIP struct {
	Query string `json:"query"`
}
type Info struct {
	Access_key_id string
	Access_key_secret string
	RecordId string
	Domain_prefix string
	Path string
}
var Config = struct {
	Info
}{}

func main() {
	configor.Load(&Config, GetAppPath()+"/config.yml")
	err := _main(Config.Info)
	fmt.Println(err)

}
func _main (info Info) (_err error) {
	LocalIP :=getOpenIP()
	if(checkIP(LocalIP)==true){
		client, _err := CreateClient(tea.String(info.Access_key_id), tea.String(info.Access_key_secret))
		if _err != nil {
			return _err
		}

		updateDomainRecordRequest := &alidns20150109.UpdateDomainRecordRequest{
			RecordId: tea.String(info.RecordId),
			RR: tea.String(info.Domain_prefix),
			Type: tea.String("A"),
			Value: tea.String(LocalIP),
		}
		_, _err = client.UpdateDomainRecord(updateDomainRecordRequest)
		if _err != nil {
			return _err
		}
		UpdateIP(LocalIP)
		return errors.New("   NEW LOCAL IP IS:"+LocalIP)
	}else{
		return errors.New("   IP NOT CHANGE :"+LocalIP)
	}

}


func getOpenIP() string{
	API_URL:="http://ip-api.com/json/"
	jsonstr := Get(API_URL)
	var Ip OpenIP
	json.Unmarshal(jsonstr, &Ip)
	return Ip.Query
}
func checkIP(ip string)bool{
	content ,_ :=ioutil.ReadFile(GetAppPath()+"/ip.log")
	fmt.Println(ip+"==="+string(content))
	if(ip==string(content)){
		return false
	}else{
		return true
	}
}

func UpdateIP(ip string){
      ioutil.WriteFile(GetAppPath()+"/ip.log", []byte(ip),0666)
}
func CreateClient (accessKeyId *string, accessKeySecret *string) (_result *alidns20150109.Client, _err error) {
	config := &openapi.Config{
		AccessKeyId: accessKeyId,
		AccessKeySecret: accessKeySecret,
	}
	config.Endpoint = tea.String("alidns.cn-hangzhou.aliyuncs.com")
	_result = &alidns20150109.Client{}
	_result, _err = alidns20150109.NewClient(config)
	return _result, _err
}

func randUA() string {
	var ua = make(map[int]string)
	ua[0] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
	ua[1] = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"
	ua[2] = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"
	ua[3] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"
	ua[4] = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0"
	ua[5] = "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11"
	ua[6] = "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"
	ua[7] = "Mozilla/5.0 (Linux; Android 4.1.2; Nexus 7 Build/JZ054K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19"
	ua[8] = "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_4 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/27.0.1453.10 Mobile/10B350 Safari/8536.25"
	ua[9] = "Mozilla/5.0 (compatible; WOW64; MSIE 10.0; Windows NT 6.2)"
	return ua[rand.Intn(10)]
}
func Get(url string) []byte {
	client := &http.Client{Timeout: time.Second * 60}
	req, err := http.NewRequest("GET", url, nil)
	if err != nil {
		fmt.Println(err)
	}
	userAgent := randUA()
	fmt.Println(userAgent)
	req.Header.Set("user-agent", userAgent)
	req.Header.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
	req.Header.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3")
	req.Header.Add("Referer", url)
	req.Header.Set("Content-Type", "application/json")
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := ioutil.ReadAll(resp.Body)
	return body

}
func GetAppPath() string {
	file, _ := exec.LookPath(os.Args[0])
	path, _ := filepath.Abs(file)
	index := strings.LastIndex(path, string(os.PathSeparator))

	return path[:index]
}

鄙人写的便宜廉价代码(GOLANG),完美解决阿里云域名 与你家IP链接的功能

傻瓜操作, 用就完了

按照代码介绍一运行, 去看看你的域名解析的IP是不是已经更改成你的公网IP

如果成功 ,你就可以开始愉快的玩耍了

如果失败,回到网站开头, 重新操作

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208834.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午10:40
下一篇 2026年3月19日 上午10:40


相关推荐

  • 深度相机工作原理

    深度相机工作原理转自 https blog csdn net electech6 article details 结构光法 为解决双目匹配问题而生深度图效果 结构光 vs 双目投射图案的编码方式 nbsp nbsp nbsp nbsp 直接编码 nbsp

    2026年3月20日
    2
  • 使用sp_executesql存储过程执行动态SQL查询

    使用sp_executesql存储过程执行动态SQL查询Thesp_executesqlstoredprocedureisusedtoexecutedynamicSQLqueriesinSQLServer.AdynamicSQLqueryisaqueryinstringformat.ThereareseveralscenarioswhereyouhaveanSQLq…

    2022年5月21日
    34
  • pycharm配置远程服务器_服务器asp环境配置

    pycharm配置远程服务器_服务器asp环境配置前言1、说明首先介绍下我本人情况,我在windows笔记本电脑上下载了Pycharm专业版,因为我本人只是用来跑代码,想把代码自动同步起来,因此特地通过pycharm来远程使用Linux上配置好的环境,加速代码运行。当然大家也可以使用Xshell等软件,使用命令行来操作。2、环境介绍目前使用的环境:Linux:20.04Pycharm:2019专业版Windows:64位Anaconda:Python3.7一、添加并设置部署1、点击Pycharm工作栏上方“Tools->

    2022年8月28日
    3
  • IDEA删除一行的快捷键

    IDEA删除一行的快捷键以前习惯用 eclipse 但是现在用了 IDEA 很不习惯 也不知道 IDEA 的快捷开发键 1 eclipse 中删除一行是 Ctrl D 很方便 也很实用 2 IDEA 中删除一行则是 Ctrl Y 如下图 这是什么设计 还好我手指长能够得到 Y 3 当然了可以在 IDEA 中设置称 eclipse 快捷键 先用 Ctrl Alt S 打开 IDEA 的设置 在上面的地址栏中搜索 keymap 如下图 在 keymap 设置中选择 eclipse 然后点击右下加 apply 最后点击 OK

    2026年3月19日
    4
  • 验证服务器端口telnet,telnet命令测试服务器端口是否通的办法

    验证服务器端口telnet,telnet命令测试服务器端口是否通的办法telnet 命令测试服务器端口是否通的办法很多站长服务器端口并不清楚怎么测试是否通 下面就写一篇测试服务器端口是否正常通讯的教程 本教程以 Windows 本机为例 可测试各类操作系统的服务器 首先我们电脑上需要安装一个 telnet 服务 安装方法如下 打开控制面板控制面板然后点击 程序和功能 点击启用或关闭 Windows 功能控制面板 程序和功能在弹出的程序和功能列表里勾选上 telnet 客户端这一项

    2026年3月17日
    2
  • cmd查看哪个端口被占用并终止其占用进程

    cmd查看哪个端口被占用并终止其占用进程打开cmd,输入命令:netstat-ano,列出所有端口的情况;查看被占用端口对应的PID,输入命令:netstat-aon|findstr“端口号”,回车,最后一位数字即PID;利用命令taskkill/f/pid进程ID结束进程。…

    2022年5月12日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号