如何检测是不是有人私自调用项目接口(非正常下单流程),得到远程ip或服务器名

项目一:配置

public SendHelperOrdersRequest()
        {
            MachineName = Environment.MachineName;
            Platform = "dfg";
        }

        /// <summary>
        /// 获取此本地计算机的NetBIOS名称
        /// </summary>
        public string MachineName { get; set; }

        /// <summary>
        ///平台
        /// </summary>
        public string Platform { get; set; }

将此日志放在要发送的项目一中

Logger.Info($"订单信息为:{JsonConvert.SerializeObject(orders)},{Environment.MachineName}");

项目一发送到项目二
项目二配置
接收的项目二

Logger.Info($"订单来源:{GetRemoteIp(this._httpContextAccessor.HttpContext)},订单数量为:{input.Orders.Count}");

和项目(一)一致的参数

        /// <summary>
        /// 获取此本地计算机的NetBIOS名称
        /// </summary>
        public string MachineName { get; set; }

        /// <summary>
        ///平台
        /// </summary>
        public string Platform { get; set; }

如果是线上的项目就得到远程服务器的ip,如果是本地测试得到的就是本地的ip

 #region 得到远程ip
        private  readonly Regex Pv4Regex = new Regex(@"\b([0-9]{1,3}\.){3}[0-9]{1,3}$",
            RegexOptions.Compiled | RegexOptions.ExplicitCapture);

        /// <summary>
        /// 得到远程ip
        /// </summary>
        /// <param name="httpContext">请求上下文</param>
        /// <returns></returns>
        internal  string GetRemoteIp( HttpContext httpContext)
        {
            if (httpContext == null)
            {
                return "0.0.0.0";
            }

            var ip = httpContext.Request.Headers["REMOTE_ADDR"].FirstOrDefault(); // could be a proxy -- beware
            var ipForwarded = httpContext.Request.Headers["X-Forwarded-For"].FirstOrDefault();
            if (string.IsNullOrEmpty(ipForwarded)) ipForwarded = httpContext.Connection.RemoteIpAddress.ToString();
            ipForwarded = Pv4Regex.Match(ipForwarded).Value;
            if (!string.IsNullOrEmpty(ipForwarded))
                ip = ipForwarded;

            return !string.IsNullOrEmpty(ip) ? ip : "0.0.0.0";
        }

        #endregion

最重要的配置Startup

services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();

如图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值