2012-07-19 57 views
3

是否有任何方法可以检测(通常)您的代码是否在Azure或Amazon虚拟机上执行。我并不是指特定的网络或工作者角色,我的意思是任何可执行文件,是否有任何将该机器解析为云虚拟机 - 例如在Azure下没有域名,所以我不能简单地依赖域名。如何检测Azure/Amazon VM

回答

0

@丹的回答不再适用于Azure中,请使用以下网址获得更好的列表

http://msdn.microsoft.com/en-us/library/windowsazure/dn175718.aspx

如果此URL永远消失,这里是从今天复印件(8月12日2013)

Europe West 
65.52.128.0/19 
213.199.128.0/20 
168.63.0.0/19 
168.63.96.0/19 
137.116.192.0/19 
137.117.128.0/17 
168.61.56.0/21 

Europe North 
65.52.64.0/20 
65.52.224.0/19 
168.63.92.0/22 
168.63.32.0/19 
94.245.88.0/21 
94.245.104.0/21 
168.63.64.0/20 
168.63.80.0/20 
168.61.96.0/19 
137.116.224.0/20 

US East 
168.62.32.0/19 
157.56.176.0/21 
168.62.160.0/19 
168.61.32.0/20 
168.61.48.0/21 
137.117.64.0/18 
137.135.64.0/18 
138.91.96.0/19 
137.116.112.0/20 

US West 
168.62.192.0/20 
168.62.208.0/21 
168.61.0.0/20 
168.61.64.0/20 
137.117.0.0/19 
137.135.0.0/18 
137.116.184.0/21 
138.91.64.0/19 
65.52.112.0/20 
168.63.89.0/24 
157.56.160.0/21 
168.62.0.0/19 

US North Central 
65.52.0.0/19 
65.52.0.0/20 
65.52.16.0/20 
65.52.192.0/19 
65.52.48.0/20 
157.55.24.0/21 
157.55.64.0/20 
157.55.160.0/20 
157.55.136.0/21 
157.55.208.0/20 
157.56.8.0/21 
157.55.252.0/22 
168.62.96.0/19 
157.55.248.0/22 
168.62.224.0/19 

US South Central 
157.55.176.10/22 
157.55.183.223/27 
157.55.184.10/22 
157.55.191.223/27 
157.55.192.10/24 
157.55.193.223/27 
157.55.194.10/24 
157.55.195.223/27 
157.55.196.10/23 
157.55.200.10/23 
157.55.80.10/23 
157.55.83.223/27 
157.55.84.10/23 
157.55.87.223/27 
65.52.32.10/22 
65.52.39.224/28 
70.37.160.10/22 
70.37.167.224/28 
70.37.118.0/24 
70.37.119.138/28 
70.37.119.170/28 
70.37.48.10/22 
70.37.55.224/28 
70.37.56.10/22 
70.37.63.224/28 
70.37.116.0/24 

SE Asia 
111.221.96.0/20 
168.63.160.0/19 
111.221.80.0/20 
168.63.224.0/19 
137.116.128.0/19 

East Asia 
65.52.160.0/19 
111.221.78.0/23 
168.63.128.0/19 
168.63.192.0/19 
137.116.160.0/20 
3

您可以查看机器的IP地址,并确定它是否位于特定云的IP地址块中。

为天青,IP地址的公布名单范围的每个部分区域是在一个XML文件:

http://download.microsoft.com/download/E/F/C/EFC5E4D8-E4EA-4EFE-9356-D8AEEBC85F50/Azure_IP_Ranges.xml

亚马逊将发布,当他们添加新的范围博客条目。他们目前:

美国东(北弗吉尼亚):

  • 72.44.32.0/19(72.44.32.0 - 72.44.63.255)
  • 67.202.0.0/18(67.202.0.0 - 67.202。 63.255)
  • 75.101.128.0/17(75.101.128.0 - 75.101.255.255)
  • 174.129.0.0/16(174.129.0.0 - 174.129.255.255)
  • 204.236.192.0/18(204.236.192.0 - 204.236 .255.255)
  • 184.73.0.0/16(184.73.0.0 - 184.73.255.255)
  • 184.72.128.0/17(184.72.128.0 - 184.72.255.255)
  • 184.72.64.0/18(184.72.64.0 - 184.72.127.255)
  • 50.16.0.0/15(50.16.0.0 - 50.17.255.255)
  • 50.19.0.0/16(50.19.0.0 - 50.19.255.255)
  • 107.20.0.0/14(107.20.0.0 - 107.23.255.255)
  • 23.20.0.0/14(23.20.0.0 - 23.23.255.255)
  • 54.242.0.0/15(54.242.0.0 - 54.243.255.255)
  • 54.234.0.0/15(54.234.0.0 - 54.235.255.255)NEW
  • 54.236.0.0/15(54.236.0.0 - 54.237.255.255)NEW

美国西部(俄勒冈):

  • 50.112.0.0/16(50.112.0.0 - 50.112.255.255)
  • 54.245.0.0/16(54.245.0.0 - 54.245.255.255)

美国西(北加州):

  • 204.236.128.0/18(204.236.128.0 - 204.236.191.255)
  • 184.72.0.0/18(184.72.0.0 - 184.72.63.255)
  • 50.18.0.0/16(50.18.0.0 - 50.18.255.255)
  • 184.169.128.0/17(184.169.128.0 - 184.169.255.255)
  • 54.241.0.0/16(54.241.0.0-54.241.255。255)

欧盟(爱尔兰):

  • 79.125.0.0/17(79.125.0.0 - 79125127255)
  • 46.51.128.0/18(46.51.128.0 - 46.51.191.255)
  • 46.51.192.0/20(46.51.192.0 - 46.51.207.255)
  • 46.137.0.0/17(46.137.0.0 - 46137127255)
  • 46.137.128.0/18(46.137.128.0 - 46137191255 )
  • 176.34.128.0/17(176.34.128.0 - 176.34.255.255)
  • 176.34.64.0/18(176.34.64.0 - 176.34.127.255)
  • 54.247.0.0/16(54.247.0.0 - 54247255255)
  • 54.246.0.0/16(54.246.0.0 - 54246255255)NEW

亚太地区(新加坡)

  • 175.41.128.0/18(175.41.128.0 - 175.41.191.255)
  • 122,248,192。 0/18(122.248.192.0 - 122248255255)
  • 46.137.192.0/18(46.137.192.0 - 46137255255)
  • 46.51.216.0/21(46.51.216.0 - 46.51.223.255)
  • 54251 .0.0/16(54.251.0.0 - 54251255255)

亚太地区(东京)

  • 175.41.192.0/18(175.41.192.0 - 175.41.255.255)
  • 46.51.224.0/19(46.51.224.0-46.51.255.255)
  • 176.32.64.0/19(176.32.64.0 - 176.32.95.255)
  • 103.4.8.0/21(103.4.8.0 - 103.4.15.255)
  • 176.34.0.0/18(176.34.0.0 - 176.34.63.255 )
  • 54.248.0.0/15(54.248.0.0 - 54249255255)

南美(圣保罗)

  • 177.71.128.0/17(177.71.128.0 - 177.71.255.255)
  • 54.232.0.0/16(54.232.0.0 - 54.232.255。255)NEW
+0

似乎是一个破碎的链接现在 – artfulhacker 2013-08-09 22:25:08

0

这是检查,如果你的机器实例在内部的方式亚马逊与否:

dmidecode | grep Version 
version: 4.2.amazon  <--- This is what you would want to key on 

只有亚马逊在虚拟机的虚拟BIOS设置中保留其签名,这才会起作用。我没有与Azure合作过,但我相信你也可以使用dmidecode推断信息。我已经用VMware和VirtualBox完成了它。

3

AWS

如果你的客人已经联网了,那么你可以通过访问http://169.254.169.254

例如探测实例元数据:

$ curl http://169.254.169.254/1.0/meta-data/instance-id 
i-87dc2f76 

然而,接触网络是相当重的重量。

在AWS上,您还可以通过查看的dmidecode检查:

$ /usr/sbin/dmidecode -s bios-version | tr "[:upper:]" "[:lower:]" | grep -q "amazon" 

的dmidecode是重量轻,因为它只击中来宾操作系统的内存。然而,正如在前面的答案中指出的那样,它依赖亚马逊继续在其版本字符串中加入“亚马逊”一词。

天青

在Azure上,你可以检测到虚拟机管理程序的细节,但这并不让你Azure和Hyper-V的区分。根据你的情况,这可能没有必要。

要使用的dmidecode检查以下字符串检测天青/ Hyper-V的:

$ /usr/sbin/dmidecode -s system-manufacturer | tr "[:upper:]" "[:lower:]" | grep -q "microsoft corporation" 

$ /usr/sbin/dmidecode -s system-product-name | tr "[:upper:]" "[:lower:]" | grep -q "virtual machine" 
+0

我要给予好评这个答案,即使它是不完整的。 HyperV在/ sys/devices/virtual/dmi/id/* _版本文件中提供了一些指针,其中包括字符串如“Hyper-V UEFI Release v1.0” – WooDzu 2017-06-05 13:29:56

+0

似乎还有/ sys/devices/platform/HYPER_V_GEN_COUN: 00文件夹 – WooDzu 2017-06-05 13:36:32