局域网中的网站解析公网ip

onefivethreetwofour 2015-03-24 09:24:10
在局域网中部署的网站,同一局域网的其他计算机访问网站时,网站能不能解析出同一局域网的公网ip。网站后台是用C#编写的。
...全文
375 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
踏平扶桑 2015-03-26
  • 打赏
  • 举报
回复
引用 8 楼 onefivethreetwofour 的回复:
[quote=引用 7 楼 5653325 的回复:] [quote=引用 6 楼 onefivethreetwofour 的回复:] [quote=引用 5 楼 5653325 的回复:] [quote=引用 4 楼 onefivethreetwofour 的回复:] [quote=引用 2 楼 jjkk168 的回复:] 没太明白,局域网访问局域网的服务器,走的就不是公网的路由,那如何能找到公网的IP?还有,常规情况下,局域网一般都是走同一个网关出口,那将导致的是同一个公网的IP地址。
简单来说就是在局域网中获取公网的ip,部署的网站需要局域网所在的公网ip信息,需要的效果就是局域网内其他计算机访问部署的网站时,显示的都是同一个公网ip。[/quote] 用花生壳这样的动态IP绑定DNS的软件,可以实现。百度一下就知道。[/quote] 不太明白,从局域网所在的公网ip是固定的,不会改变的,花生壳不是针对那种动态ip的软件吗?[/quote] 外网(公网)IP是动态的,你申请个这样的动态域名的东西,并且做好映射,让你局域网内的机器访问的时候直接访问域名,就应该会从公网走,然后你就可以获得用户过来的公网IP了。[/quote] 外网的ip一定是动态的吗?就不能有静态的ip?网站部署的机构有自己的静态ip,不是那种通过DHCP来回变动的ip。局域网内使用域名访问网站时,正常解析出来还是局域网的ip。我知道一种访问第三方网站获取公网ip的方法,也就是访问局域网外的网站,这时会经过公网的路由,可以获得局域网的公网ip。现在想找一种不用出外网就 能获得公网ip的方法。[/quote] 有静态公网IP更好,在你们DNS或者路由器上绑一个域名,然后内网都访问这个域名即可。
  • 打赏
  • 举报
回复
引用 15 楼 sp1234 的回复:
[quote=引用 4 楼 onefivethreetwofour 的回复:] 简单来说就是在局域网中获取公网的ip,部署的网站需要局域网所在的公网ip信息,需要的效果就是局域网内其他计算机访问部署的网站时,显示的都是同一个公网ip。
获取公网IP比较简单,但是你首先要判断(也上面相同的方式)访问者都是同一个网段内的客户端,才“显示公网IP”。 不过你这个需求设计其实是比较诡异的。[/quote] 谢谢你的回答。获取局域网其他访问网站的计算机的公网ip是因为:网站只允许指定的几个ip访问,这个设计现在改不了了。客户局域网外网的ip是一个A类地址,客户的一些机器用的是C类的非私有ip(地址不在192.168.0.0~192.168.255.255范围内)作为局域网内的地址。那么如何判断一个访问者的地址是内网的ip还是公网的同地址的ip呢?
还想懒够 2015-03-25
  • 打赏
  • 举报
回复
引用 8 楼 onefivethreetwofour 的回复:
[quote=引用 7 楼 5653325 的回复:] [quote=引用 6 楼 onefivethreetwofour 的回复:] [quote=引用 5 楼 5653325 的回复:] [quote=引用 4 楼 onefivethreetwofour 的回复:] [quote=引用 2 楼 jjkk168 的回复:] 没太明白,局域网访问局域网的服务器,走的就不是公网的路由,那如何能找到公网的IP?还有,常规情况下,局域网一般都是走同一个网关出口,那将导致的是同一个公网的IP地址。
简单来说就是在局域网中获取公网的ip,部署的网站需要局域网所在的公网ip信息,需要的效果就是局域网内其他计算机访问部署的网站时,显示的都是同一个公网ip。[/quote] 用花生壳这样的动态IP绑定DNS的软件,可以实现。百度一下就知道。[/quote] 不太明白,从局域网所在的公网ip是固定的,不会改变的,花生壳不是针对那种动态ip的软件吗?[/quote] 外网(公网)IP是动态的,你申请个这样的动态域名的东西,并且做好映射,让你局域网内的机器访问的时候直接访问域名,就应该会从公网走,然后你就可以获得用户过来的公网IP了。[/quote] 外网的ip一定是动态的吗?就不能有静态的ip?网站部署的机构有自己的静态ip,不是那种通过DHCP来回变动的ip。局域网内使用域名访问网站时,正常解析出来还是局域网的ip。我知道一种访问第三方网站获取公网ip的方法,也就是访问局域网外的网站,这时会经过公网的路由,可以获得局域网的公网ip。现在想找一种不用出外网就 能获得公网ip的方法。[/quote] 那你就只有想办法让局域网的其他机器通过外网访问你的服务器,而不是走局域网了。而你的服务器是固定IP或动态IP均不重要。重要的是透过外网访问,才可以通过常规方法读取到访问的客户端IP地址。
  • 打赏
  • 举报
回复
引用 7 楼 5653325 的回复:
[quote=引用 6 楼 onefivethreetwofour 的回复:] [quote=引用 5 楼 5653325 的回复:] [quote=引用 4 楼 onefivethreetwofour 的回复:] [quote=引用 2 楼 jjkk168 的回复:] 没太明白,局域网访问局域网的服务器,走的就不是公网的路由,那如何能找到公网的IP?还有,常规情况下,局域网一般都是走同一个网关出口,那将导致的是同一个公网的IP地址。
简单来说就是在局域网中获取公网的ip,部署的网站需要局域网所在的公网ip信息,需要的效果就是局域网内其他计算机访问部署的网站时,显示的都是同一个公网ip。[/quote] 用花生壳这样的动态IP绑定DNS的软件,可以实现。百度一下就知道。[/quote] 不太明白,从局域网所在的公网ip是固定的,不会改变的,花生壳不是针对那种动态ip的软件吗?[/quote] 外网(公网)IP是动态的,你申请个这样的动态域名的东西,并且做好映射,让你局域网内的机器访问的时候直接访问域名,就应该会从公网走,然后你就可以获得用户过来的公网IP了。[/quote] 外网的ip一定是动态的吗?就不能有静态的ip?网站部署的机构有自己的静态ip,不是那种通过DHCP来回变动的ip。局域网内使用域名访问网站时,正常解析出来还是局域网的ip。我知道一种访问第三方网站获取公网ip的方法,也就是访问局域网外的网站,这时会经过公网的路由,可以获得局域网的公网ip。现在想找一种不用出外网就 能获得公网ip的方法。
踏平扶桑 2015-03-25
  • 打赏
  • 举报
回复
引用 6 楼 onefivethreetwofour 的回复:
[quote=引用 5 楼 5653325 的回复:] [quote=引用 4 楼 onefivethreetwofour 的回复:] [quote=引用 2 楼 jjkk168 的回复:] 没太明白,局域网访问局域网的服务器,走的就不是公网的路由,那如何能找到公网的IP?还有,常规情况下,局域网一般都是走同一个网关出口,那将导致的是同一个公网的IP地址。
简单来说就是在局域网中获取公网的ip,部署的网站需要局域网所在的公网ip信息,需要的效果就是局域网内其他计算机访问部署的网站时,显示的都是同一个公网ip。[/quote] 用花生壳这样的动态IP绑定DNS的软件,可以实现。百度一下就知道。[/quote] 不太明白,从局域网所在的公网ip是固定的,不会改变的,花生壳不是针对那种动态ip的软件吗?[/quote] 外网(公网)IP是动态的,你申请个这样的动态域名的东西,并且做好映射,让你局域网内的机器访问的时候直接访问域名,就应该会从公网走,然后你就可以获得用户过来的公网IP了。
  • 打赏
  • 举报
回复
引用 4 楼 onefivethreetwofour 的回复:
简单来说就是在局域网中获取公网的ip,部署的网站需要局域网所在的公网ip信息,需要的效果就是局域网内其他计算机访问部署的网站时,显示的都是同一个公网ip。
获取公网IP比较简单,但是你首先要判断(也上面相同的方式)访问者都是同一个网段内的客户端,才“显示公网IP”。 不过你这个需求设计其实是比较诡异的。
  • 打赏
  • 举报
回复
例如你可以随便在自己的外网asp.net网站里边放一个 ReturnIP.ashx
<%@ WebHandler Language="C#" Class="returnIp" %>

using System;
using System.Web;

public class returnIp : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        context.Response.Write(context.Request.UserHostAddress);
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }
}
访问它就可以了。
  • 打赏
  • 举报
回复
如果你有自己的外网服务器,在它上面放一个只有一两行代码的asp.net程序返回公网IP即可。
还想懒够 2015-03-25
  • 打赏
  • 举报
回复
引用 11 楼 rtdb 的回复:
[quote=引用 9 楼 jjkk168 的回复:] 那你就只有想办法让局域网的其他机器通过外网访问你的服务器,而不是走局域网了。而你的服务器是固定IP或动态IP均不重要。重要的是透过外网访问,才可以通过常规方法读取到访问的客户端IP地址。
同意。 最简单的方法就是修改服务器的本地IP到不同的域,使得本地无法访问。 例如大家都是192.168, 那你设为10.0.0.1, 本地IP就访问不到了, 就可以强制大家用公网IP来访问了。[/quote] 说实话,真不知道楼主这样做的目的何在。换成我做项目,能走内网就绝对不往外网走一圈。如果是内网的,还需要解析公网IP干什么?即使是走公网IP,多数情况都是走的同一个网关,那么根据访问的客户端IP段可以分析出哪些是外网,哪些是内网。如果是内网IP地址,统一替换成为一个外网的IP不就可以了?(这个IP只需要服务器去读一下外网,一堆的方法可以获取到公网IP地址)
rtdb 2015-03-25
  • 打赏
  • 举报
回复
引用 9 楼 jjkk168 的回复:
那你就只有想办法让局域网的其他机器通过外网访问你的服务器,而不是走局域网了。而你的服务器是固定IP或动态IP均不重要。重要的是透过外网访问,才可以通过常规方法读取到访问的客户端IP地址。
同意。 最简单的方法就是修改服务器的本地IP到不同的域,使得本地无法访问。 例如大家都是192.168, 那你设为10.0.0.1, 本地IP就访问不到了, 就可以强制大家用公网IP来访问了。
  • 打赏
  • 举报
回复
引用 9 楼 jjkk168 的回复:
那你就只有想办法让局域网的其他机器通过外网访问你的服务器,而不是走局域网了。而你的服务器是固定IP或动态IP均不重要。重要的是透过外网访问,才可以通过常规方法读取到访问的客户端IP地址。
谢谢!你说的方法很好。请问有没有办法,从网站自身考虑,当局域网其他机器访问网站时,能够解析出所访问机器的公网ip?
kevinmartin 2015-03-24
  • 打赏
  • 举报
回复
得看访问方式,如果是用局域网的ip访问,就是局域网地址,如果用公网ip访问,就是公网ip地址。
还想懒够 2015-03-24
  • 打赏
  • 举报
回复
没太明白,局域网访问局域网的服务器,走的就不是公网的路由,那如何能找到公网的IP?还有,常规情况下,局域网一般都是走同一个网关出口,那将导致的是同一个公网的IP地址。
蜗牛慢慢趴 2015-03-24
  • 打赏
  • 举报
回复
试试关闭防火墙
  • 打赏
  • 举报
回复
引用 5 楼 5653325 的回复:
[quote=引用 4 楼 onefivethreetwofour 的回复:] [quote=引用 2 楼 jjkk168 的回复:] 没太明白,局域网访问局域网的服务器,走的就不是公网的路由,那如何能找到公网的IP?还有,常规情况下,局域网一般都是走同一个网关出口,那将导致的是同一个公网的IP地址。
简单来说就是在局域网中获取公网的ip,部署的网站需要局域网所在的公网ip信息,需要的效果就是局域网内其他计算机访问部署的网站时,显示的都是同一个公网ip。[/quote] 用花生壳这样的动态IP绑定DNS的软件,可以实现。百度一下就知道。[/quote] 不太明白,从局域网所在的公网ip是固定的,不会改变的,花生壳不是针对那种动态ip的软件吗?
踏平扶桑 2015-03-24
  • 打赏
  • 举报
回复
引用 4 楼 onefivethreetwofour 的回复:
[quote=引用 2 楼 jjkk168 的回复:] 没太明白,局域网访问局域网的服务器,走的就不是公网的路由,那如何能找到公网的IP?还有,常规情况下,局域网一般都是走同一个网关出口,那将导致的是同一个公网的IP地址。
简单来说就是在局域网中获取公网的ip,部署的网站需要局域网所在的公网ip信息,需要的效果就是局域网内其他计算机访问部署的网站时,显示的都是同一个公网ip。[/quote] 用花生壳这样的动态IP绑定DNS的软件,可以实现。百度一下就知道。
  • 打赏
  • 举报
回复
引用 2 楼 jjkk168 的回复:
没太明白,局域网访问局域网的服务器,走的就不是公网的路由,那如何能找到公网的IP?还有,常规情况下,局域网一般都是走同一个网关出口,那将导致的是同一个公网的IP地址。
简单来说就是在局域网中获取公网的ip,部署的网站需要局域网所在的公网ip信息,需要的效果就是局域网内其他计算机访问部署的网站时,显示的都是同一个公网ip。

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧