架構師_程序員

 找回密碼
 注冊[Register]

QQ登錄

只需一步,快速開始

查看: 175|回復: 0

【網絡異常】訪問本站無法登錄、驗證碼不顯示等解決方案

[復制鏈接]
跳轉到指定樓層
樓主
發表于 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:




可能會導致國外用戶打開網站速度非常快,但是無法正常登錄,例如:無法登錄、驗證碼不顯示、登錄后不顯示登錄狀態等等異常錯誤。

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地址接口:http://www.igjfbb.icu/tool/server_ip.html

The correct server ip address interface: http://www.igjfbb.icu/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:



工具下載地址:http://www.igjfbb.icu/tool/NetworkTool.zip

Tool download address: http://www.igjfbb.icu/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.igjfbb.icu";
  14.         private const string SERVER_API = "http://www.igjfbb.icu/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.igjfbb.icu 地址。{LINE}Resolving domain name www.igjfbb.icu 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#獲取當前系統磁盤符、系統目錄、桌面等
下一篇:《Python數據可視化編程實戰》pdf帶書簽
帖子永久地址: 

架構師_程序員 - 論壇版權1、本主題所有言論和圖片純屬會員個人意見,與本論壇立場無關
2、本站所有主題由該帖子作者發表,該帖子作者與架構師_程序員享有帖子相關版權
3、其他單位或個人使用、轉載或引用本文時必須同時征得該帖子作者和架構師_程序員的同意
4、帖子作者須承擔一切因本文發表而直接或間接導致的民事或刑事法律責任
5、本帖部分內容轉載自其它媒體,但并不代表本站贊同其觀點和對其真實性負責
6、如本帖侵犯到任何版權問題,請立即告知本站,本站將及時予與刪除并致以最深的歉意
7、架構師_程序員管理員和版主有權不事先通知發貼者而刪除本文

碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
您需要登錄后才可以回帖 登錄 | 注冊[Register]

本版積分規則

免責聲明:
碼農網所發布的一切軟件、編程資料或者文章僅限用于學習和研究目的;不得將上述內容用于商業或者非法用途,否則,一切后果請用戶自負。本站信息來自網絡,版權爭議與本站無關。您必須在下載后的24個小時之內,從您的電腦中徹底刪除上述內容。如果您喜歡該程序,請支持正版軟件,購買注冊,得到更好的正版服務。

Mail To:help@itsvse.com

QQ|Archiver|手機版|小黑屋|架構師 ( 魯ICP備14021824號-2 )|網站地圖

GMT+8, 2019-10-18 06:51

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表
北京赛车pk10直播皇家彩世界