导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
tiez (骑牛夜旅)
★☆☆☆☆
-
普通会员
2021/1/19 10:44:37
标题:
自己做的一个查公网IP并发到邮箱的小工具
浏览:2420
加入我的收藏
楼主:
上周四没啥事,就做了个查自家公网IP的小工具,查了之后可以发到指定邮箱里。 这个工具可以以程序方式运行,也可以注册成系统服务。 拿到之后先直接运行一下,运行之后会自动在同一目录下生成一个ini文件。 运行后按检测周期检测,启动时第一次检测的IP会自动发送到邮箱,后面再检测就会比一下IP有没有变,没变就不重复发送了。 [System] Reflex Server=http://pv.sohu.com/cityjson?ie=utf-8 Time Circle (ms)=10000//这是检测的周期,自动生成的只有十秒,大家还是设成十分钟就可以了 [EMail] Address=用来收邮件的邮件,一般设成和下面SMTP的UserName一致就行了。 Subject=邮件标题 [SMTP] IP=smtp.163.com Port=25 UserName=****@163.com Password=*******注意一下,这个password一般和你邮箱登录密码不同,要到邮箱网页中看一下SMTP的配置,里面一般有个申请密码的地方,这种密码是给你邮箱申请使用其它客户端时登录用的。 rar里面有源代码,delphiXE10.4环境开发的,对日志和配置文件的处理使用了我自己开发的一些基础代码,我没放进来。日志的基础使用了codesite。codesite发日志的时候是使用的TCP发到本地的,装个codesite运行dispatcher就可以同步看日志了 当然不看也没问题。codesite不直接使用file的方式是因为在服务方式下File的方式是不能正常运行的。 核心的查IP和发邮件的都是很简单的,就几行代码,有要用到的可以看下代码用在自己项目里。 做这个的目的是我自家的机器数据库,SVN,摄像头,啥的做了公网映射,但公网IP过段时间会自动变一下的,我家的周期是一两周变一次,时间不定,断了自动重连就变了。搞个邮箱收IP用到的时候查下邮箱就可以连家里机器了。
----------------------------------------------
-
作者:
tiez (骑牛夜旅)
★☆☆☆☆
-
普通会员
2021/1/19 10:47:09
1楼:
运行的时候界面上有个录入邮箱地址的框,修改了一存其实就改了配置中的email的address,是方便使用的,因为目标邮箱可能会变化,其它的还是直接在配置文件中改吧。
----------------------------------------------
-
作者:
tiez (骑牛夜旅)
★☆☆☆☆
-
普通会员
2021/1/19 10:55:53
2楼:
忘说怎么注册成服务了。 以管理员方式运行那个黑乎乎的控制台。 >可执行文件名 /install 这样就注册进去了。 反注册是 >可执行文件名 /uninstall 注册成功了服务里面会多个3W IP reporting service的服务,中文描述是“外网IP上报服务”,设成自动运行那机器启动后就会自己上报了。 注册了这个再直接运行可执行文件就没有反应了,反注册后就又可以以程序的方式运行了。 这个combo服务的模式使用了remobjects的基础控件。
----------------------------------------------
-
作者:
2021/1/19 11:09:24
3楼:
= =唉拿不到外网ip。
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/ >http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
tiez (骑牛夜旅)
★☆☆☆☆
-
普通会员
2021/1/19 13:56:27
4楼:
3楼,为啥?
----------------------------------------------
-
作者:
xjia (xjia)
★☆☆☆☆
-
盒子活跃会员
2021/1/19 16:19:51
5楼:
感觉用动态域名比这简单,放在内网或路由上更新 3# 估计是用的移动宽带,移动宽带基本都不能申请公网IP
----------------------------------------------
-
作者:
2021/1/19 22:50:20
6楼:
动态域名更新dns速度并不快 联通 小区ip 唉,打过电话 要么办理企业宽带??????????/我去忽悠我开企业的。。 我特么是个体户啊
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/ >http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
tiez (骑牛夜旅)
★☆☆☆☆
-
普通会员
2021/1/20 12:35:43
7楼:
我家是电信的,打了客服电话说我家需要开放公网IP,也就是说家里光猫上的上口IP直接就是动态获得的公网IP,好像就帮我设了,我原来也不知道,是同事告诉我可以这样的,不用花钱。 这个工具是通过访问sohu的一个服务反射取得公网IP,就是不知道你使用的运营商有没有做什么隐藏操作了。还有一些别的网站也提供这个服务。sohu的这个比较快,返回的是一个简单的类似json的串。
----------------------------------------------
-
作者:
2021/1/20 16:42:19
8楼:
很好很强大,观望下
----------------------------------------------
-
作者:
datm (dATM)
★☆☆☆☆
-
盒子活跃会员
2021/1/20 17:06:55
8楼:
搞复杂了,注册一个花生壳帐号,定时访问一个url就可以了
----------------------------------------------
-
作者:
tiez (骑牛夜旅)
★☆☆☆☆
-
普通会员
2021/1/21 14:05:33
9楼:
8楼,有时我们管理多台机器,并不想去申请那么多花生壳
----------------------------------------------
-
作者:
2021/1/21 17:56:45
10楼:
这个问题,两种处理方法。 简单点的,自己写一个服务器端程序放外网,内网的程序访问外网服务器软件,外网服务器自然知道内网程序的【公网】IP; 然后想知道,就向那个外网服务器程序去查询。 这个是实现此功能的原理。用 Delphi 写的话,我通常会写成用 TIdUDP 通讯,或者用 WebService 的模式。总之就是网络通讯,可以获得公网 IP 以及查询。 ---------- 另外一种,是比较标准的处理方法:DDNS; 我大概在 02年 就用 Delphi 做过 DDNS 了。 DNS 服务器采用互联网上的标准开源的 BIND 服务器,自己在服务器里面写一个服务器端的程序,接收来自私网客户端的网络访问,获得它的公网地址,然后用这个地址去更新 BIND 的解析;更新完,你用 DNS 的方式去查你对应的域名,IP 地址就变成当前最新的了。 DDNS 的问题是 DNS 有个生存期,通常会设置为24小时甚至更长,如果是 DDNS,设置为5分钟,如果太短则 DNS 服务器可能会被频繁性的访问导致服务器压力过大。如果是5分钟,那你更新后,要5分钟后才能看到新的 IP 地址,有滞后。 如果你的服务器只为你自己服务,而不是针对公众服务,没几个人会使用你的域名,那倒是可以把这个生存期参数设置短一点。
----------------------------------------------
-
作者:
2021/1/21 18:15:24
11楼:
我用的 DNS SERVER 是 BIND; DELPHI 也提供了一个 DNS SERVER:TIdDNSServer,可惜没有资料,不知道如何使用。
----------------------------------------------
-
作者:
2021/1/21 19:38:43
12楼:
to pcplayer sf.net上有一个本地(127.0.0.1) dns 服务(当初我设置的来源是8.8.8.8)开源的建议去看看 也有 类似 hosts 文件 忘记了时间长了 主要是用来看访问了哪些dns的。 (当初google改ip可以访问用过很长一段时间) https://sourceforge.net/projects/acrylic/files/Acrylic/2.0.0/
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/ >http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
2021/1/22 12:26:18
13楼:
楼上,你发的这个,好像不是查询公网 IP 的方法?
----------------------------------------------
-
作者:
2021/1/22 12:31:52
14楼:
这个 会先query 8.8.8.8 然后丢给来自系统 127.0.0.1 对127 来说是服务端 对8.8.8.8 来说是客户端 不知道你还要啥?
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/ >http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
2022/5/10 17:44:21
15楼:
RemObject 这个没有呀,用不了
----------------------------------------------
-
作者:
2022/5/10 23:15:45
16楼:
哦,你是利用了 Sohu 提供的这个服务啊: http://pv.sohu.com/cityjson?ie=utf-8
----------------------------------------------
-
作者:
2022/5/11 9:27:14
17楼:
QQ家的不香吗? https://apps.game.qq.com/comm-htdocs/ip/get_ip.php
----------------------------------------------
delphi界写python最强, python界写delphi最强. 写自己的代码, 让别人去运行.
作者:
tiez (骑牛夜旅)
★☆☆☆☆
-
普通会员
2022/5/11 11:09:10
18楼:
17楼,这个东西的目的是不你在这个机器上操作,机器动态IP也不知道,它给你自动发邮箱,只要变更了就发。 你要在这个机器上操作了,那还要外网IP做啥。 还有这个确实比动态IP要快。我是配合Remote Utilities用的,不用teamview和向日葵的。我发现用地址簿就很慢,用已知IP就很快,所以就做了这个东西。
----------------------------------------------
-
作者:
2022/5/11 12:19:23
19楼:
用公开的服务 + Email 通知的方式,确实是一个好办法。基本上就是不要钱,还能达到效果。 公开服务唯一的问题就是,哪天它可能变了,或者停止服务了。 之前我自己做的一个防火墙程序,要挡住外来连接攻击,需要查询外来 IP 的归属地,使用了阿里的 IP 归属地查询服务,用了半年后,它的服务不稳定了,导致我的防火墙程序半天没反应。我以为程序出了问题,查了半天才发现程序是卡在向阿里服务器查询 IP 归属地那里。
----------------------------------------------
-
作者:
dalas (dalas)
★☆☆☆☆
-
普通会员
2022/5/12 1:28:09
20楼:
如果有公网IP,用花生壳免费动态域名就可以了,何需这么麻烦。 现在家宽哪还有公网IP。
----------------------------------------------
-
作者:
2022/5/12 2:45:22
21楼:
谢谢各位兄弟,感觉学了不少。当然最需要感谢的是楼主兄弟。
----------------------------------------------
只有偏执狂才能生存!
作者:
2022/5/14 14:37:20
22楼:
https://www1.szu.edu.cn/nc/speedtest/ http://speed.neu.edu.cn/ http://speed.neu6.edu.cn/getIP.php 没打开http://speed.neu6.edu.cn 纯猜链接是这样。 http://speed.neu.edu.cn/getIP.php http://ip-api.com/json/?lang=zh-CN https://ipw.cn/ipv6/ curl 4.ipw.cn curl 6.ipw.cn curl test.ipw.cn 能拿ip的地方挺多的。
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/ >http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
2022/5/20 12:25:15
23楼:
…… 被禁用帐号,帖子内容自动屏蔽! ……
----------------------------------------------
SPAM