架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 36117|回复: 8

【网络异常】访问本站无法登录、验证码不显示等解决方案

[复制链接]
发表于 2019-9-20 23:07:06 | 显示全部楼层 |阅读模式
由于本站使用了智能dns解析,国内用户解析到阿里云服务器,国外用户解析到亚马逊的cdn服务。

Because the site uses intelligent dns analysis, domestic users resolve to Alibaba Cloud server, and foreign users resolve to Amazon's cdn service.

独立IP 34个,如下图:

34 independent IP, as shown below:

QQ截图20190920223515.jpg


可能会导致国外用户打开网站速度非常快,但是无法正常登录,例如:无法登录、验证码不显示、登录后不显示登录状态等等异常错误。

It may cause foreign users to open the website very quickly, but it cannot log in normally. For example, it is impossible to log in, the verification code is not displayed, the login status is not displayed after login, and so on.

解决方案:

solution:

可以通过系统hosts文件,使用域名重定向直接解析到服务器的ip地址,即可解决。

It can be solved by directly resolving the ip address of the server through the system hosts file and using domain name redirection.

正确服务器ip地址接口:https://www.itsvse.com/tool/server_ip.html

The correct server ip address interface: https://www.itsvse.com/tool/server_ip.html

可以通过下载软件工具,如果域名解析ip地址和接口地址不一致,软件自动修改hosts文件,如下图:
You can download the software tool. If the domain name resolution ip address and interface address are inconsistent, the software automatically modifies the hosts file, as shown below:

QQ截图20190920225631.jpg

工具下载地址:https://www.itsvse.com/tool/NetworkTool.zip

Tool download address: https://www.itsvse.com/tool/NetworkTool.zip

程序源码:

Program source code:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Net;
  6. using System.Security.Principal;
  7. using System.Text;

  8. namespace NetworkTool
  9. {
  10.     class Program
  11.     {
  12.         private const string LINE = "\r\n";
  13.         private const string DOMAIN = "www.itsvse.com";
  14.         private const string SERVER_API = "https://www.itsvse.com/tool/server_ip.html";
  15.         static void Main(string[] args)
  16.         {
  17.             bool isElevated;
  18.             using (WindowsIdentity identity = WindowsIdentity.GetCurrent())
  19.             {
  20.                 WindowsPrincipal principal = new WindowsPrincipal(identity);
  21.                 isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator);
  22.             }
  23.             if (!isElevated)
  24.             {
  25.                 Console.WriteLine($"请右击程序使用管理员身份运行!{LINE}Please right click on the program to run as an administrator!");
  26.             }
  27.             else
  28.             {
  29.                 try
  30.                 {
  31.                     ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
  32.                     //获取远程接口服务器正确的ip地址
  33.                     WebClient webClient = new WebClient();
  34.                     string server_ip = webClient.DownloadString(SERVER_API);
  35.                     Console.WriteLine($"远程接口正确IP地址为:{server_ip}{LINE}The correct IP address of the remote interface is:{server_ip}");
  36.                     string disk = Environment.GetEnvironmentVariable("systemdrive");
  37.                     string path = disk + @"\WINDOWS\system32\drivers\etc\hosts";
  38.                     Console.WriteLine($"正在解析域名 www.itsvse.com 地址。{LINE}Resolving domain name www.itsvse.com address.");
  39.                     IPAddress[] IPs = Dns.GetHostAddresses(DOMAIN);
  40.                     string ip = IPs[0].ToString();
  41.                     Console.WriteLine($"解析的IP地址为:{ip}。{LINE}The resolved IP address is:{ip}");
  42.                     if (!ip.Equals(server_ip))
  43.                     {
  44.                         Console.WriteLine($"正在修改 hosts 使用域名重定向!{LINE}Modifying hosts using domain name redirection!");
  45.                         //通常情况下这个文件是只读的,所以写入之前要取消只读
  46.                         File.SetAttributes(path, File.GetAttributes(path) & (~FileAttributes.ReadOnly));//取消只读
  47.                         FileStream fs = new FileStream(path, FileMode.Append);
  48.                         //2.创建写入器
  49.                         StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
  50.                         //3.开始写入
  51.                         bool result = false;//标识是否写入成功
  52.                         try
  53.                         {
  54.                             StringBuilder sb = new StringBuilder();
  55.                             sb.Append(server_ip);
  56.                             sb.Append(" ");
  57.                             sb.Append(DOMAIN);
  58.                             sw.WriteLine(sb.ToString());
  59.                             result = true;
  60.                         }
  61.                         catch (Exception ex)
  62.                         {
  63.                             result = false;
  64.                         }
  65.                         finally
  66.                         {
  67.                             //4.关闭写入器
  68.                             if (sw != null)
  69.                             {
  70.                                 sw.Close();
  71.                             }
  72.                             //5.关闭文件流
  73.                             if (fs != null)
  74.                             {
  75.                                 fs.Close();
  76.                             }
  77.                         }
  78.                         if (result == true)
  79.                         {
  80.                             Console.WriteLine($"更新成功!{LINE}update completed");
  81.                             File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.ReadOnly);//设置只读
  82.                         }
  83.                         else
  84.                         {
  85.                             Console.WriteLine($"写入失败{LINE}Write failure");
  86.                         }
  87.                     }
  88.                     else
  89.                     {
  90.                         Console.WriteLine($"解析地址正确!{LINE}Parse the address correctly!");
  91.                     }
  92.                     Console.WriteLine();
  93.                 }
  94.                 catch (Exception ex)
  95.                 {
  96.                     Console.WriteLine($"程序异常!{LINE}The program is abnormal!");
  97.                     Console.WriteLine(ex);
  98.                 }
  99.             }
  100.             Console.ReadKey(true);
  101.         }
  102.     }
  103. }
复制代码









上一篇:C#获取当前系统磁盘符、系统目录、桌面等
下一篇:Oxford Discover全套【幼儿全英电子教材】
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-12-25 11:55:56 | 显示全部楼层
可以
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2020-2-28 16:55:43 | 显示全部楼层
学习了解了解!
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2020-6-5 10:28:30 | 显示全部楼层
阔以
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-10-20 15:00:49 | 显示全部楼层
支持下 支持下
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-11-12 02:34:00 | 显示全部楼层
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-11-12 13:38:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-3-10 09:05:53 | 显示全部楼层
可以了
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-12-15 17:00:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-10-8 11:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表