C#动态IP上网将新公网IP发送到邮箱

目录

一、C#写一个WSDL服务,IIS里面设置好。

二、路由器里面设置端口映射

三、C#写一个Windows服务程序

四、启动服务

五、源代码下载


有时候需要在公司设置一些对外的服务,公网IP就很重要了。以前某银行给一条固定IP的宽带,随着银行领导某退居二线,新领导说我们不符合条件没有任何提前通知给撤了(吐槽一下)。想起原来在路由器里面设置个核桃皮(huashengke)就可以用了,结果现在太难设置了,干脆在路由器里面映射端口算了,反正用的不多。因为是动态上网,虽然每个IP都可以用一段时间,但每次IP都会变,我们需要在公网IP发生变化时发送新IP到邮箱,这样我们在外面就可以知道新IP了。其实买个云服务器也是不错的选择,但我这个需要读取局域网内Oracle数据库的数据,所以就是玩呗。

一、C#写一个WSDL服务,IIS里面设置好。

过程(略)

二、路由器里面设置端口映射

过程(略)

三、C#写一个Windows服务程序

  1. Timer每隔1分钟获取公网IP
  2. 检测上次IP是否与新IP一致
  3. 如果不一致发送邮件
  4. 如果不一致ftp新IP到我的网站,没有就算了
  5. Android编写的app里面读取ftp的新IP

我在这个地址推荐里面直接读取ftp到我网站的新IP,用着还行。

没有就只能看邮件手工设置了

小贴士:本来想贴代码来着,算了直接给大家源代码得了,贴的一块一块的字数是多了,我也不指望靠字数$。

四、启动服务

写一个bat文件,源代码里给大家。

五、源代码下载

链接:https://pan.baidu.com/s/1K3-TlzNAWItg32MImWVODA

提取码:9o4d

里面的邮箱和邮箱的密码什么的需要修改一下,给我的你们也用不了。我用的126的,不是广告,一直用而已,里面说明很详细。

另,我用的是VS2022,疫情结束后买卖很难,商场要黄了,找工作中,中年失业没什么心情,回复有些有一搭没一搭的,见谅。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本文件是C#代码片断 public Form1() { InitializeComponent(); } int i = 0; int j = 0; string[] proxys; #region 改变代理 [DllImport("wininet.dll", SetLastError = true)] private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength); /// public void RefreshIESettings(string strProxy) { const int INTERNET_OPTION_PROXY = 38; const int INTERNET_OPEN_TYPE_PROXY = 3; Struct_INTERNET_PROXY_INFO struct_IPI; // Filling in structure struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY; struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy); struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local"); // Allocating memory IntPtr intptrStruct = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI)); // Converting structure to IntPtr Marshal.StructureToPtr(struct_IPI, intptrStruct, true); bool iReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, Marshal.SizeOf(struct_IPI)); } #endregion private void Form1_Load(object sender, EventArgs e) { proxys = File.ReadAllLines("C:/proxy.txt"); } private void timer1_Tick(object sender, EventArgs e) { if (i < proxys.Length) { label2.Text = proxys[i]; label9.Text = i.ToString(); label3.Text = "waiting..."; RefreshIESettings(proxys[i]); webBrowser1.Navigate("http://www.imwq.net"); timer1.Enabled = false; i++; } else { timer1.Enabled = false; button1.Text = "结束"; } } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { label3.Text = "ok..."; timer1.Enabled = true; } private void button1_Click(object sender, EventArgs e) { timer1.Enabled = true; } } struct Struct_INTERNET_PROXY_INFO { public int dwAccessType; public IntPtr proxy; public IntPtr proxyBypass; };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值