LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 6974|回复: 8

如何在局域网中,知道本机外网的ip是多少呢?

[复制链接]
发表于 2004-8-20 10:49:08 | 显示全部楼层 |阅读模式
我的电脑在局域网中,有一个内网的ip:192.168.1.100
但是,我拥有进行NAT端口映射的权限。比如,把外网的端口80映射到本机80上
现在,我的问题是,我如何在内网得到外网的ip地址呢?
因为是ADSL上网,外网的地址是不顾定。

当然,在windows下,3322的beta版动态域名软件可以做到这一点。
可是,我需要如何在linux下编辑一个小程序实现同样的效果呢?

总结:我需要一个小程序,能够在局域网中获取本机(也就是局域网)外部的ip地址,要怎么做呢?

:thank :thank

最好是能用linux提供的基本命令的bash程序。
其它的,也可以,不过我就不能看懂了。

如果觉得我说得不清楚,欢迎发问。:thank :thank
发表于 2004-8-20 10:59:03 | 显示全部楼层
您现在 的 IP : 218.61.138.180

Linux 下也是有好几个动态域名的

google 一下
发表于 2004-8-20 11:02:53 | 显示全部楼层
外网IP就是网关的IP吧
发表于 2004-8-20 11:20:15 | 显示全部楼层
老虎的网关的IP 是 192.168.1.1 :p

其实可以申请静态IP 的 , 用不了多少钱的 , 最多把 luoyong 的银行帐号弄了就行 :p
发表于 2004-8-20 11:31:31 | 显示全部楼层
说错了,本机外网IP是网关的外网IP
发表于 2004-8-20 11:41:25 | 显示全部楼层
最初由 luoyong 发表
说错了,本机外网IP是网关的外网IP


这就对了
 楼主| 发表于 2004-8-20 11:46:32 | 显示全部楼层

会编程的呢?
发表于 2004-8-20 17:40:51 | 显示全部楼层
不用那么麻烦,有几个方法,

lynx www.whatismyip.com出来的就是你的ip

另一个是telnet 一个smtp服务器,helo localhost让它得出你的ip

不足的请兄弟们补充
发表于 2006-5-16 12:29:03 | 显示全部楼层

要想获取外网的IP还得用C#编码

如果要想获得远程的地址,需要用sendarp这个函数来实现。具体的代码如下:
[DllImport("Iphlpapi.dll")]
private static unsafe extern int SendARP(Int32 dest,Int32 host,ref IntPtr mac,ref IntPtr length);
[DllImport("Ws2_32.dll")]
private static extern Int32 inet_addr(string ip);

Int32 ldest= inet_addr("157.60.68.163");//目的地的ip
Int32 lhost= inet_addr("157.60.68.33");//本地的ip

try
{
Byte[] macinfo=new Byte[6];
Int32 length=6;

IntPtr mac=new IntPtr(macinfo[0]);
IntPtr len=new IntPtr(6);
int ii=SendARP(ldest,lhost, ref mac, ref len);

Console.WriteLine("Mac Add:"+mac);
Console.WriteLine("length:"+len);


}
catch(Exception err)
{
Console.WriteLine(err); <
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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