牛腩新闻发布系统中问题集锦

本文总结了跟随牛腩老师学习新闻发布系统的实践经验,包括解决IPv4地址获取、密码MD5加密及第三方控件FreeTextBox集成等问题。

      最近一直在看牛腩老师的新闻发布系统.到现在感觉最大的就是非常地想总结。一是B/S中涉及到的html,css,asp.net,javascript,jquery,ajax等等,他们究竟是什么,我只是能通过这个系统有一个模糊的想法,他们之间的关系是怎么样的,还理不清。现在跟着做了一遍,但是很多该了解的东西还没有掌握。这是我接下来该做得事情---建立B/S的全局观。二是在做得过程中由于工具和语言的发展,很多的地方已经不一样了。边做边调bug。下面我总结了一下我做得过程中出现的bug,以及解决办法。

1.获取客户端IPv4地址

在视频牛腩老师采用这种方法取出客户端ip:Request.ServerVariables["REMOTE_ADDR"];在我这里测试出的结果是"::1".而不是想象的类似于"127.0.0.1"这样的格式的IP地址.这是因为我使用的window8的系统,默认取出的是IPv6的地址。我们可以将网络连接中 IPv6的协议勾掉(这点在网上找到的办法,没有测试过)。我采用的是另一种办法,将ipv6的地址转为ipv4的。这里还需要注意一点:代理服务器.

 ASP 中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取。但是也不是每个代理服务器都能用此方法获得.如果客户端没有通过代理服务器来访问,那么用 Request.ServerVariables ("HTTP_X_FORWARDED_FOR") 取到的值将是空的.可以这么处理:

...... 
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR") 
If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR") 
...... 

我的解决办法(取出真正的IPv4地址):需要引用命名空间:System.Net

        public string GetClientIPv4()                    '获取客户端Ipv4地址。
        {
            string ipv4 = String.Empty;
            foreach (IPAddress ip in Dns.GetHostAddresses(GetClientIP()))    '调用下面的方法获取IP。
            {
                if (ip.AddressFamily.ToString() == "InterNetwork")
                {
                    ipv4 = ip.ToString();
                    break;
                }
            }

            if (ipv4 != String.Empty)
            {
                return ipv4;
            }

            foreach (IPAddress ip in Dns.GetHostEntry(GetClientIP()).AddressList)
            {
                if (ip.AddressFamily.ToString() == "InterNetwork")
                {
                    ipv4 = ip.ToString();
                    break;
                }
            }
            return ipv4;
        }


        /// <summary>
        /// 取得客户端地址
        /// </summary>
        public string GetClientIP()
        {
            if (null == HttpContext.Current.Request.ServerVariables["HTTP_VIA"])   '使用代理服务器了吗?
            {
                return HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];   '是,采用REMOTE_ADDR这种方法。
            }
            else
            {
                return HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];   '不是,采用HTTP_X-FORWARDED_FOR这种方法。

            }
        }

2.将密码转换为MD5码

牛腩老师的视频中需要将密码加密为MD5码,他的方法为:

string Password = FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox1.Text.ToString(), "MD5");
我的vs2012中出现此方法已过时的错误提示。下面是我的解决方案:需要引用命名空间: System.Web.Security;

       //将字符加密为MD5码
        public String md5(String s)
        {
            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes(s);
            bytes = md5.ComputeHash(bytes);
            md5.Clear();

            string ret = "";
            for (int i = 0; i < bytes.Length; i++)
            {
                ret += Convert.ToString(bytes[i], 16).PadLeft(2, '0');
            }
            return ret.PadLeft(32, '0');
        }

3.引用第三方控件FreeTextBox

在视频中引用了第三方控件FreeTextBox后,编译出现错误:错误"Lc.exe 已退出,代码 -1 ".

解决方案:

 1、就是把Properties文件下的license.licx给删除,重新编译。

 2、如果还出现这个问题的话,必须将你的破解版的哪个组件使用lidism给翻译成il语言,然后用ilasm重新编译成dll,在编译的时候加入 /key=[你的强名称文件].snk 参数,自己加入强名称签名,然后使用vs2005重新编译,就可以成功了。

4.添加asp.net 的验证控件时弹出的错误。如下:

([ASP.NET]WebForms UnobtrusiveValidationMode 需要 'jquery' 的ScriptResourceMapping。请加入 ScriptResourceMapping 命名的 jquery (区分大小写)。)

解决办法:在page_load事件中加入下面这句话:UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;   就可以了。(原因还不了解。)



内容概要:本文介绍了一个基于MATLAB实现的无人机三维路径规划项目,采用蚁群算法(ACO)与多层感知机(MLP)相结合的混合模型(ACO-MLP)。该模型通过三维环境离散化建模,利用ACO进行全局路径搜索,并引入MLP对环境特征进行自适应学习与启发因子优化,实现路径的动态调整与多目标优化。项目解决了高维空间建模、动态障碍规避、局部最优陷阱、算法实时性及多目标权衡等关键技术难题,结合并行计算与参数自适应机制,提升了路径规划的智能性、安全性和工程适用性。文中提供了详细的模型架构、核心算法流程及MATLAB代码示例,涵盖空间建模、信息素更新、MLP训练与融合优化等关键步骤。; 适合人群:具备一定MATLAB编程基础,熟悉智能优化算法与神经网络的高校学生、科研人员及从事无人机路径规划相关工作的工程师;适合从事智能无人系统、自动驾驶、机器人导航等领域的研究人员; 使用场景及目标:①应用于复杂三维环境下的无人机路径规划,如城市物流、灾害救援、军事侦察等场景;②实现飞行安全、能耗优化、路径平滑与实时避障等多目标协同优化;③为智能无人系统的自主决策与环境适应能力提供算法支持; 阅读建议:此资源结合理论模型与MATLAB实践,建议读者在理解ACO与MLP基本原理的基础上,结合代码示例进行仿真调试,重点关注ACO-MLP融合机制、多目标优化函数设计及参数自适应策略的实现,以深入掌握混合智能算法在工程中的应用方法。
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值