Aracılığıyla paylaş


Microsoft 365 IP Adresi ve URL web hizmeti

Microsoft 365 IP Adresi ve URL web hizmeti, Microsoft 365 ağ trafiğini daha iyi tanımlamanıza ve ayırt etmenize yardımcı olur, böylece değişiklikleri değerlendirmenizi, yapılandırmanızı ve güncel kalmanızı kolaylaştırır. Bu REST tabanlı web hizmeti, 2 Ekim 2018'de kullanıma sunulan önceki XML indirilebilir dosyalarının yerini alır.

Müşteri veya ağ çevre cihazı satıcısı olarak, Microsoft 365 IP adresi ve FQDN girişleri için web hizmetine göre derleme yapabilirsiniz. Şu URL'leri kullanarak verilere doğrudan bir web tarayıcısında erişebilirsiniz:

Müşteri olarak bu web hizmetini kullanarak şunları yapabilirsiniz:

  • Microsoft 365 uç nokta verilerini almak için PowerShell betiklerinizi güncelleştirin ve ağ cihazlarınız için tüm biçimlendirmeleri değiştirin.
  • İstemci bilgisayarlara dağıtılan PAC dosyalarını güncelleştirmek için bu bilgileri kullanın.

Ağ çevre cihazı satıcısı olarak bu web hizmetini kullanarak şunları yapabilirsiniz:

  • Otomatik yapılandırma listesini indirmek için cihaz yazılımı oluşturun ve test edin.
  • Geçerli sürümü denetleyin.
  • Geçerli değişiklikleri alın.

Not

Microsoft 365'e bağlanmak için Azure ExpressRoute kullanıyorsanız, Azure ExpressRoute üzerinden desteklenen Microsoft 365 hizmetlerini tanımak için lütfen Microsoft 365 için Azure ExpressRoute'u gözden geçirin. Microsoft 365 uygulamaları için hangi ağ isteklerinin İnternet bağlantısı gerektirdiğini anlamak için Microsoft 365 URL'leri ve IP adresi aralıkları makalesini de gözden geçirin. Bu, çevre güvenlik cihazlarınızı daha iyi yapılandırmanıza yardımcı olur.

Daha fazla bilgi için bkz.:

Ortak parametreler

Bu parametreler tüm web hizmeti yöntemlerinde ortaktır:

  • format=<JSON | CSV> —Varsayılan olarak, döndürülen veri biçimi JSON'dır. Verileri virgülle ayrılmış değerler (CSV) biçiminde döndürmek için bu isteğe bağlı parametreyi kullanın.

  • ClientRequestId=<guid> —İstemci ilişkilendirmesi için oluşturduğunuz gerekli BIR GUID. Web hizmetini çağıran her makine için benzersiz bir GUID oluşturun (bu sayfadaki betikler sizin için bir GUID oluşturur). Aşağıdaki örneklerde gösterilen GUID'leri kullanmayın çünkü gelecekte web hizmeti tarafından engellenebilirler. GUID biçimi xxxxxxxx-xxxx-xxxx-xxxx-xxxxx biçimindedir; burada x onaltılık bir sayıyı temsil eder.

    GUID oluşturmak için New-Guid PowerShell komutunu veya Çevrimiçi GUID Oluşturucu gibi çevrimiçi bir hizmeti kullanabilirsiniz.

Sürüm web yöntemi

Microsoft, Microsoft 365 IP adresini ve FQDN girdilerini her ayın başında güncelleştirir. Destek olayları, güvenlik güncelleştirmeleri veya diğer operasyonel gereksinimler nedeniyle bant dışı güncelleştirmeler bazen yayımlanır.

Yayımlanan her örneğin verilerine bir sürüm numarası atanır ve sürüm web yöntemi, her Microsoft 365 hizmet örneğinin en son sürümünü denetlemenize olanak tanır. Sürümü saatte bir kereden fazla denetlemenizi öneririz.

Sürüm web yönteminin parametreleri şunlardır:

  • AllVersions=<true | false> —Varsayılan olarak, döndürülen sürüm en son sürümdür. Web hizmeti ilk kez yayımlandıktan sonra yayımlanan tüm sürümleri istemek için bu isteğe bağlı parametreyi ekleyin.
  • Format=<JSON | CSV | RSS> —JSON ve CSV biçimlerine ek olarak, sürüm web yöntemi de RSS'yi destekler. Bu isteğe bağlı parametreyi AllVersions=true parametresiyle birlikte kullanarak Outlook veya diğer RSS okuyucularıyla birlikte kullanılabilecek bir RSS akışı isteyebilirsiniz.
  • Örnek=<Dünya çapında | Çin | USGovDoD | USGovGCCHigh> —Bu isteğe bağlı parametre sürümü döndürülecek örneği belirtir. Atlanırsa, tüm örnekler döndürülür. Geçerli örnekler şunlardır: Dünya çapında, Çin, USGovDoD, USGovGCCHigh.

Sürüm web yöntemi hız sınırlı değildir ve hiçbir zaman 429 HTTP Yanıt Kodları döndürmez. Sürüm web yöntemine verilen yanıt, verilerin 1 saat önbelleğe alınmasını öneren bir önbellek denetimi üst bilgisi içerir. Sürüm web yönteminin sonucu tek bir kayıt veya bir kayıt dizisi olabilir. Her kaydın öğeleri şunlardır:

  • instance—Microsoft 365 hizmet örneğinin kısa adı.
  • latest—Belirtilen örneğin uç noktaları için en son sürüm.
  • versions—Belirtilen örnek için tüm önceki sürümlerin listesi. Bu öğe yalnızca AllVersions parametresi true olduğunda eklenir.

Sürüm web yöntemi örnekleri

Örnek 1 istek URI'si: https://endpoints.office.com/version?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Bu URI, her Microsoft 365 hizmet örneğinin en son sürümünü döndürür. Örnek sonuç:

[
 {
  "instance": "Worldwide",
  "latest": "2018063000"
 },
 {
  "instance": "USGovDoD",
  "latest": "2018063000"
 },
 {
  "instance": "USGovGCCHigh",
  "latest": "2018063000"
 },
 {
  "instance": "China",
  "latest": "2018063000"
 }
]

Önemli

Bu URI'lerdeki ClientRequestID parametresinin GUID değeri yalnızca bir örnektir. Web hizmeti URI'lerini denemek için kendi GUID'nizi oluşturun. Bu örneklerde gösterilen GUID'ler gelecekte web hizmeti tarafından engellenebilir.

Örnek 2 istek URI'si: https://endpoints.office.com/version/Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Bu URI, belirtilen Microsoft 365 hizmet örneğinin en son sürümünü döndürür. Örnek sonuç:

{
 "instance": "Worldwide",
 "latest": "2018063000"
}

Örnek 3 istek URI'si: https://endpoints.office.com/version/Worldwide?Format=CSV& ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Bu URI, çıkışı CSV biçiminde gösterir. Örnek sonuç:

instance,latest
Worldwide,2018063000

Örnek 4 istek URI'si: https://endpoints.office.com/version/Worldwide?AllVersions=true& ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Bu URI, Microsoft 365 dünya çapında hizmet örneği için yayımlanmış olan önceki tüm sürümleri gösterir. Örnek sonuç:

{
  "instance": "Worldwide",
  "latest": "2018063000",
  "versions": [
    "2018063000",
    "2018062000"
  ]
}

Örnek 5 RSS Akışı URI'si: https://endpoints.office.com/version/worldwide?clientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7& allVersions=true&format=RSS

Bu URI, her sürüm için değişiklik listesine bağlantılar içeren yayımlanmış sürümlerin RSS akışını gösterir. Örnek sonuç:

<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0" xmlns:a10="https://www.w3.org/2005/Atom">
<channel>
<link>https://aka.ms/o365ip</link>
<description/>
<language>en-us</language>
<lastBuildDate>Thu, 02 Aug 2018 00:00:00 Z</lastBuildDate>
<item>
<guid isPermaLink="false">2018080200</guid>
<link>https://endpoints.office.com/changes/Worldwide/2018080200?singleVersion&clientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7</link> <description>Version 2018080200 includes 2 changes. IPs: 2 added and 0 removed.</description>
<pubDate>Thu, 02 Aug 2018 00:00:00 Z</pubDate>
</item>

Uç noktalar web yöntemi

Uç noktalar web yöntemi, Microsoft 365 hizmetini oluşturan IP adresi aralıkları ve URL'ler için tüm kayıtları döndürür. Uç noktalar web yönteminden en son veriler her zaman ağ cihazı yapılandırması için kullanılmalıdır. Microsoft, erişim denetimi listelerini ve ara sunucu atlama listelerini güncelleştirmeniz için size zaman vermek üzere yeni eklemeleri yayımlamadan 30 gün önce önceden bildirimde bulunur. Endpoints web yöntemini yalnızca sürüm web yöntemi verilerin yeni bir sürümünün kullanılabilir olduğunu gösterdiğinde yeniden çağırmanızı öneririz.

Uç nokta web yönteminin parametreleri şunlardır:

  • ServiceAreas=<Ortak | Exchange | SharePoint | Skype> : Hizmet alanlarının virgülle ayrılmış listesi. Geçerli öğeler Ortak, Exchange, SharePoint ve Skype'tır. Ortak hizmet alanı öğeleri diğer tüm hizmet alanları için bir önkoşul olduğundan, web hizmeti bunları her zaman içerir. Bu parametreyi eklemezseniz, tüm hizmet alanları döndürülür.
  • TenantName=<tenant_name> —Microsoft 365 kiracı adınız. Web hizmeti, sağlanan adınızı alır ve kiracı adını içeren URL'lerin bölümlerine ekler. Kiracı adı sağlamazsanız, URL'lerin bu bölümleri joker karaktere (*) sahiptir.
  • NoIPv6=<true | false> —Ağınızda IPv6 kullanmıyorsanız IPv6 adreslerini çıktının dışında tutmak için değeri true olarak ayarlayın.
  • Örnek=<Dünya çapında | Çin | USGovDoD | USGovGCCHigh> —Bu gerekli parametre, uç noktaların döndürüleceği örneği belirtir. Geçerli örnekler şunlardır: Dünya çapında, Çin, USGovDoD ve USGovGCCHigh.

Uç noktalar web yöntemini aynı istemci IP adresinden çok fazla çağırırsanız, HTTP yanıt kodu 429 (Çok Fazla İstek) alabilirsiniz. Bu yanıt kodunu alırsanız, isteğinizi yinelemeden önce 1 saat bekleyin veya istek için yeni bir GUID oluşturun. Genel bir en iyi yöntem olarak, yalnızca sürüm web yöntemi yeni bir sürümün kullanılabilir olduğunu gösterdiğinde endpoints web yöntemini çağırın.

Endpoints web yönteminden elde edilen sonuç, her kaydın belirli bir uç nokta kümesini temsil ettiği bir kayıt dizisidir. Her kaydın öğeleri şunlardır:

  • id—Uç nokta kümesinin sabit kimlik numarası.
  • serviceArea—Bunun parçası olduğu hizmet alanı: Common, Exchange, SharePoint veya Skype.
  • url'ler—uç nokta kümesinin URL'leri. DNS kayıtlarının JSON dizisi. Boşsa atlanır.
  • tcpPorts—Uç nokta kümesi için TCP bağlantı noktaları. Tüm bağlantı noktaları öğeleri, bir tire karakteri (-) ile ayrılmış bağlantı noktalarının veya bağlantı noktası aralıklarının virgülle ayrılmış bir listesi olarak biçimlendirilir. Bağlantı noktaları, belirli bir kategori için uç nokta kümesindeki tüm IP adreslerine ve tüm URL'lere uygulanır. Boşsa atlanır.
  • udpPorts—Bu uç nokta kümesindeki IP adresi aralıkları için UDP bağlantı noktaları. Boşsa atlanır.
  • ips —Listelenen TCP veya UDP bağlantı noktalarıyla ilişkili olarak bu uç nokta kümesiyle ilişkilendirilmiş IP adresi aralıkları. IP adresi aralıklarından oluşan bir JSON dizisi. Boşsa atlanır.
  • category—Uç nokta kümesinin bağlantı kategorisi. Geçerli değerler İyileştir, İzin Ver ve Varsayılan'dır. Belirli bir IP adresinin veya URL'nin kategorisi için uç noktalar web yöntemi çıkışında arama yaparsanız, sorgunuz birden çok kategori döndürecektir. Böyle bir durumda, en yüksek öncelikli kategori için öneriyi izleyin. Örneğin, uç nokta hem İyileştir hem de İzin Ver'de görünüyorsa İyileştir gereksinimlerini izlemeniz gerekir. Gerekli.
  • expressRoute — Bu uç nokta kümesi ExpressRoute üzerinden yönlendiriliyorsa True , yönlendirilmediyse False .
  • gerekli — Microsoft 365'in desteklenmesi için bu uç nokta kümesinin bağlantısı olması gerekiyorsa true . Bu uç nokta kümesi isteğe bağlıysa False.
  • notlar—İsteğe bağlı uç noktalar için bu metinde, bu uç nokta kümesindeki IP adreslerine veya URL'lere ağ katmanından erişilemiyorsa kullanılamayacak Microsoft 365 işlevselliği açıklanmaktadır. Boşsa atlanır.

Uç noktalar web yöntemi örnekleri

Örnek 1 istek URI'si: https://endpoints.office.com/endpoints/Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Bu URI, tüm iş yükleri için microsoft 365 dünya çapındaki örneğinin tüm uç noktalarını alır. Çıktının bir alıntısını gösteren örnek sonuç:

[
 {
  "id": 1,
  "serviceArea": "Exchange",
  "serviceAreaDisplayName": "Exchange Online",
  "urls":
   [
    "*.protection.outlook.com"
   ],
  "ips":
   [
    "2a01:111:f403::/48", "23.103.132.0/22", "23.103.136.0/21", "23.103.198.0/23", "23.103.212.0/22", "40.92.0.0/14", "40.107.0.0/17", "40.107.128.0/18", "52.100.0.0/14", "213.199.154.0/24", "213.199.180.128/26", "94.245.120.64/26", "207.46.163.0/24", "65.55.88.0/24", "216.32.180.0/23", "23.103.144.0/20", "65.55.169.0/24", "207.46.100.0/24", "2a01:111:f400:7c00::/54", "157.56.110.0/23", "23.103.200.0/22", "104.47.0.0/17", "2a01:111:f400:fc00::/54", "157.55.234.0/24", "157.56.112.0/24", "52.238.78.88/32"
   ],
  "tcpPorts": "443",
  "expressRoute": true,
  "category": "Allow"
 },
 {
  "id": 2,
  "serviceArea": "Exchange",
  "serviceAreaDisplayName": "Exchange Online",
  "urls":
   [
    "*.mail.protection.outlook.com"
   ],

Bu örnekteki isteğin tam çıkışı diğer uç nokta kümelerini içerir.

Örnek 2 istek URI'si: https://endpoints.office.com/endpoints/Worldwide?ServiceAreas=Exchange& ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Bu örnek, Exchange Online için Microsoft 365 Worldwide örneğinin uç noktalarını ve yalnızca bağımlılıkları alır.

Örneğin, 2 çıktısı örnek 1'e benzer, ancak sonuçlar SharePoint veya Skype Kurumsal Çevrimiçi Sürüm uç noktalarını içermez.

Web yöntemini değiştirir

Değişiklik web yöntemi, yayımlanan en son güncelleştirmeleri( genellikle önceki ayın IP adresi aralıklarında ve URL'lerinde yapılan değişiklikleri) döndürür.

Uç nokta verilerinde yapılan en önemli değişiklikler yeni URL'ler ve IP adresleridir. Bir güvenlik duvarı erişim denetim listesine IP adresi veya ara sunucu atlama listesine URL eklenememesi, bu ağ cihazının arkasındaki Microsoft 365 kullanıcıları için kesintiye neden olabilir. İşletimsel gereksinimlere bakılmaksızın, yeni uç noktalar, erişim denetim listelerini ve ara sunucu atlama listelerini güncelleştirmeniz için size zaman vermek üzere uç noktaların sağlandığı tarihten 30 gün önce web hizmetinde yayımlanır.

Changes web yöntemi için gerekli parametre:

  • Sürüm=<YYYYMMDDNN> —Gerekli URL yol parametresi. Bu değer, şu anda uyguladığınız sürümdür. Web hizmeti, bu sürümden bu yana yapılan değişiklikleri döndürür. Biçim YYYYMMDDNN'dir; burada tek bir günde yayımlanması gereken birden çok sürüm varsa NN doğal bir sayı artırılır ve belirli bir gün için ilk güncelleştirmeyi temsil eden 00 olur. Web hizmeti sürüm parametresinin tam olarak 10 basamak içermesini gerektirir.

Değişiklik web yöntemi, uç noktalar web yöntemiyle aynı şekilde hız sınırına sahiptir. 429 HTTP yanıt kodu alırsanız, isteğinizi yinelemeden önce 1 saat bekleyin veya istek için yeni bir GUID oluşturun.

Değişiklik web yönteminden elde edilen sonuç, her kaydın uç noktaların belirli bir sürümündeki değişikliği temsil ettiği bir kayıt dizisidir. Her kaydın öğeleri şunlardır:

  • id—Değişiklik kaydının sabit kimliği.
  • endpointSetId—Değiştirilen uç nokta kümesi kaydının kimliği.
  • disposition—Uç nokta kümesi kaydında yapılan değişikliği açıklar. Değerler değişiklik, ekleme veya kaldırma işlemleridir.
  • etki— Tüm değişiklikler her ortam için eşit derecede önemli olmayacaktır. Bu öğe, bu değişikliğin bir sonucu olarak kurumsal ağ çevre ortamına beklenen etkiyi açıklar. Bu öğe yalnızca sürüm 2018112800 ve sonraki sürümlerin değişiklik kayıtlarına eklenir. Etki seçenekleri şunlardır:
    • AddedIp – Microsoft 365'e bir IP adresi eklendi ve yakında hizmette yayınlanacak. Bu, güvenlik duvarında veya 3. katmandaki başka bir ağ çevre cihazında yapmanız gereken bir değişikliği temsil eder. Bunu kullanmaya başlamadan önce eklemezseniz bir kesintiyle karşılaşabilirsiniz.
    • AddedUrl – Microsoft 365'e bir URL eklendi ve yakında hizmette yayınlanacak. Bu, bir ara sunucu veya URL ayrıştırma ağ çevre cihazı üzerinde yapmanız gereken bir değişikliği temsil eder. Bu URL'yi kullanmaya başlamadan önce eklemezseniz bir kesintiyle karşılaşabilirsiniz.
    • AddedIpAndUrl—Hem IP adresi hem de URL eklendi. Bu, güvenlik duvarı katman 3 cihazında ya da ara sunucu ya da URL ayrıştırma cihazında yapmanız gereken bir değişikliği temsil eder. Bu IP/URL çifti kullanmaya başlamadan önce eklemezseniz bir kesintiyle karşılaşabilirsiniz.
    • addedSubstituteUrl – Joker karakter URL'si kaldırıldığı için joker karakter nedeniyle daha önce yayımdan kaldırılan bir FQDN yayımlandı. Bu değişiklik hemen geçerlidir.
    • RemovedIpOrUrl – Microsoft 365'ten en az bir IP adresi veya URL kaldırıldı. Çevre cihazlarınızdan ağ uç noktalarını kaldırın, ancak bunu yapmanız için son tarih yoktur.
    • ChangedIsExpressRoute – ExpressRoute destek özniteliği değiştirildi. ExpressRoute kullanıyorsanız, yapılandırmanıza bağlı olarak işlem yapmanız gerekebilir.
    • MovedIpOrUrl – Bu uç nokta kümesi ile başka bir uç nokta kümesi arasında bir IP adresi veya Url taşıdık. Genellikle hiçbir eylem gerekmez.
    • RemovedDuplicateIpOrUrl – Yinelenen bir IP adresini veya Url'yi kaldırdık ancak microsoft 365 için yayımlanmaya devam ediyor. Genellikle hiçbir eylem gerekmez.
    • OtherNonPriorityChanges – Not alanının içeriği gibi diğer tüm seçeneklerden daha az önemli bir şeyi değiştirdik.
  • version—Değişikliğin sunulduğu yayımlanmış uç nokta kümesinin sürümü. Sürüm numaraları YYYYMMDDNN biçimindedir; burada NN , tek bir günde yayımlanması gereken birden çok sürüm varsa doğal bir sayı artırılır.
  • previous—Uç nokta kümesindeki değiştirilen öğelerin önceki değerlerinin ayrıntılarını veren bir alt yapı. Bu, yeni eklenen uç nokta kümeleri için dahil edilmeyecektir. ExpressRoute, serviceArea, category, required, tcpPorts, udpPorts ve notları içerir.
  • current—Uç nokta kümesindeki değişiklik öğelerinin güncelleştirilmiş değerlerinin ayrıntılarını veren bir alt yapı. ExpressRoute, serviceArea, category, required, tcpPorts, udpPorts ve notları içerir.
  • add —Uç nokta kümesi koleksiyonlarına eklenecek öğeleri ayrıntılarıyla belirten bir alt yapı. Ekleme yoksa atlanır. — effectiveDate—Eklemelerin hizmette ne zaman canlı olacağını tanımlar. — ips— ips dizisine eklenecek öğeler. — urls- urls dizisine eklenecek öğeler.
  • remove—Uç nokta kümesinden kaldırılacak öğelerin ayrıntılarını içeren bir alt yapı. Kaldırma yoksa atlanır. — ips— ips dizisinden kaldırılacak öğeler. — urls- Urls dizisinden kaldırılacak öğeler.

Web yöntemi örneklerini değiştirir

Örnek 1 istek URI'si: https://endpoints.office.com/changes/worldwide/0000000000?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Bu, Microsoft 365 dünya çapında hizmet örneğinde önceki tüm değişiklikleri gerektirir. Örnek sonuç:

[
 {
  "id": 424,
  "endpointSetId": 32,
  "disposition": "Change",
  "version": "2018062700",
  "remove":
   {
    "urls":
     [
      "*.api.skype.com", "skypegraph.skype.com"
     ]
   }
 },
 {
  "id": 426,
  "endpointSetId": 31,
  "disposition": "Change",
  "version": "2018062700",
  "add":
   {
    "effectiveDate": "20180609",
    "ips":
     [
      "51.140.203.190/32"
     ]
   },
  "remove":
   {
    "ips":
     [

Örnek 2 istek URI'si: https://endpoints.office.com/changes/worldwide/2018062700?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Bu, belirtilen sürümden bu yana Microsoft 365 Worldwide örneğine değişiklik isteğinde bulunur. Bu durumda, belirtilen sürüm en son sürümdür. Örnek sonuç:

[
  {
    "id":3,
    "endpointSetId":33,
    "changeDescription":"Removing old IP prefixes",
    "disposition":"Change",
    "version":"2018031301",
    "remove":{
      "ips":["65.55.127.0/24","66.119.157.192/26","66.119.158.0/25",
      "111.221.76.128/25","111.221.77.0/26","207.46.5.0/24"]
    }
  },
  {
    "id":4,
    "endpointSetId":45,
    "changeDescription":"Removing old IP prefixes",
    "disposition":"Change",
    "version":"2018031301",
    "remove":{
      "ips":["13.78.93.8/32","40.113.87.220/32","40.114.149.220/32",
      "40.117.100.83/32","40.118.214.164/32","104.208.31.113/32"]
    }
  }
]

Örnek PowerShell betiği

Güncelleştirilmiş veriler için gerçekleştirmeniz gereken eylemler olup olmadığını görmek için bu PowerShell betiğini çalıştırabilirsiniz. Sürüm güncelleştirmesini denetlemek için bu betiği zamanlanmış bir görev olarak çalıştırabilirsiniz. Web hizmetinde aşırı yük oluşmasını önlemek için betiği saatte bir kereden fazla çalıştırmamaya çalışın.

Betik aşağıdakileri yapar:

  • Web hizmeti REST API'sini çağırarak geçerli Microsoft 365 Dünya çapında örnek uç noktalarının sürüm numarasını denetler.

  • $Env:TEMP\O365_endpoints_latestversion.txtkonumundaki geçerli bir sürüm dosyasını denetler. $Env:TEMP genel değişkeninin yolu genellikle C:\Users\username>\<AppData\Local\Temp şeklindedir.

  • Betik ilk kez çalıştırılıyorsa, betik geçerli sürümü ve tüm geçerli IP adreslerini ve URL'lerini döndürür, uç nokta sürümünü $Env:TEMP\O365_endpoints_latestversion.txt dosyasına ve uç nokta veri çıkışını $Env:TEMP\O365_endpoints_data.txtdosyasına yazar. Şu satırları düzenleyerek çıkış dosyasının yolunu ve/veya adını değiştirebilirsiniz:

    $versionpath = $Env:TEMP + "\O365_endpoints_latestversion.txt"
    $datapath = $Env:TEMP + "\O365_endpoints_data.txt"
    
  • Betiğin sonraki her yürütmesinde, en son web hizmeti sürümü O365_endpoints_latestversion.txt dosyasındaki sürümle aynıysa, betik herhangi bir değişiklik yapmadan çıkar.

  • En son web hizmeti sürümü O365_endpoints_latestversion.txt dosyasındaki sürümden daha yeni olduğunda betik, İzin Ver ve İyileştir kategori uç noktaları için uç noktaları ve filtreleri döndürür, O365_endpoints_latestversion.txt dosyasındaki sürümü güncelleştirir ve güncelleştirilmiş verileri O365_endpoints_data.txt dosyasına yazar.

Betik, yürütülürken kullandığı bilgisayar için benzersiz bir ClientRequestId oluşturur ve bu kimliği birden çok çağrıda yeniden kullanabilir. Bu kimlik O365_endpoints_latestversion.txt dosyasında depolanır.

PowerShell betiğini çalıştırmak için

  1. Betiği kopyalayın ve yerel sabit sürücünüze veya betik konumunuza Get-O365WebServiceUpdates.ps1olarak kaydedin.

  2. Betiği PowerShell ISE veya VS Code gibi tercih ettiğiniz betik düzenleyicisinde veya aşağıdaki komutu kullanarak bir PowerShell konsolundan yürütür:

    powershell.exe -file <path>\Get-O365WebServiceUpdates.ps1
    

    Betike geçirecek parametre yok.

<# Get-O365WebServiceUpdates.ps1
From https://aka.ms/ipurlws
v1.1 8/6/2019

DESCRIPTION
This script calls the REST API of the Microsoft 365 IP and URL Web Service (Worldwide instance)
and checks to see if there has been a new update since the version stored in an existing
$Env:TEMP\O365_endpoints_latestversion.txt file in your user directory's temp folder
(usually C:\Users\<username>\AppData\Local\Temp).
If the file doesn't exist, or the latest version is newer than the current version in the
file, the script returns IPs and/or URLs that have been changed, added or removed in the latest
update and writes the new version and data to the output file $Env:TEMP\O365_endpoints_data.txt.

USAGE
Run as a scheduled task every 60 minutes.

PARAMETERS
n/a

PREREQUISITES
PS script execution policy: Bypass
PowerShell 3.0 or later
Does not require elevation
#>

#Requires -Version 3.0

# web service root URL
$ws = "https://endpoints.office.com"
# path where output files will be stored
$versionpath = $Env:TEMP + "\O365_endpoints_latestversion.txt"
$datapath = $Env:TEMP + "\O365_endpoints_data.txt"

# fetch client ID and version if version file exists; otherwise create new file and client ID
if (Test-Path $versionpath) {
    $content = Get-Content $versionpath
    $clientRequestId = $content[0]
    $lastVersion = $content[1]
    Write-Output ("Version file exists! Current version: " + $lastVersion)
}
else {
    Write-Output ("First run! Creating version file at " + $versionpath + ".")
    $clientRequestId = [GUID]::NewGuid().Guid
    $lastVersion = "0000000000"
    @($clientRequestId, $lastVersion) | Out-File $versionpath
}

# call version method to check the latest version, and pull new data if version number is different
$version = Invoke-RestMethod -Uri ($ws + "/version/Worldwide?clientRequestId=" + $clientRequestId)
if ($version.latest -gt $lastVersion) {
    Write-Host "New version of Microsoft 365 worldwide commercial service instance endpoints detected"
    # write the new version number to the version file
    @($clientRequestId, $version.latest) | Out-File $versionpath
    # invoke endpoints method to get the new data
    $endpointSets = Invoke-RestMethod -Uri ($ws + "/endpoints/Worldwide?clientRequestId=" + $clientRequestId)
    # filter results for Allow and Optimize endpoints, and transform these into custom objects with port and category
    # URL results
    $flatUrls = $endpointSets | ForEach-Object {
        $endpointSet = $_
        $urls = $(if ($endpointSet.urls.Count -gt 0) { $endpointSet.urls } else { @() })
        $urlCustomObjects = @()
        if ($endpointSet.category -in ("Allow", "Optimize")) {
            $urlCustomObjects = $urls | ForEach-Object {
                [PSCustomObject]@{
                    category = $endpointSet.category;
                    url      = $_;
                    tcpPorts = $endpointSet.tcpPorts;
                    udpPorts = $endpointSet.udpPorts;
                }
            }
        }
        $urlCustomObjects
    }
    # IPv4 results
    $flatIp4s = $endpointSets | ForEach-Object {
        $endpointSet = $_
        $ips = $(if ($endpointSet.ips.Count -gt 0) { $endpointSet.ips } else { @() })
        # IPv4 strings contain dots
        $ip4s = $ips | Where-Object { $_ -like '*.*' }
        $ip4CustomObjects = @()
        if ($endpointSet.category -in ("Allow", "Optimize")) {
            $ip4CustomObjects = $ip4s | ForEach-Object {
                [PSCustomObject]@{
                    category = $endpointSet.category;
                    ip = $_;
                    tcpPorts = $endpointSet.tcpPorts;
                    udpPorts = $endpointSet.udpPorts;
                }
            }
        }
        $ip4CustomObjects
    }
    # IPv6 results
    $flatIp6s = $endpointSets | ForEach-Object {
        $endpointSet = $_
        $ips = $(if ($endpointSet.ips.Count -gt 0) { $endpointSet.ips } else { @() })
        # IPv6 strings contain colons
        $ip6s = $ips | Where-Object { $_ -like '*:*' }
        $ip6CustomObjects = @()
        if ($endpointSet.category -in ("Optimize")) {
            $ip6CustomObjects = $ip6s | ForEach-Object {
                [PSCustomObject]@{
                    category = $endpointSet.category;
                    ip = $_;
                    tcpPorts = $endpointSet.tcpPorts;
                    udpPorts = $endpointSet.udpPorts;
                }
            }
        }
        $ip6CustomObjects
    }

    # write output to screen
    Write-Output ("Client Request ID: " + $clientRequestId)
    Write-Output ("Last Version: " + $lastVersion)
    Write-Output ("New Version: " + $version.latest)
    Write-Output ""
    Write-Output "IPv4 Firewall IP Address Ranges"
    ($flatIp4s.ip | Sort-Object -Unique) -join "," | Out-String
    Write-Output "IPv6 Firewall IP Address Ranges"
    ($flatIp6s.ip | Sort-Object -Unique) -join "," | Out-String
    Write-Output "URLs for Proxy Server"
    ($flatUrls.url | Sort-Object -Unique) -join "," | Out-String
    Write-Output ("IP and URL data written to " + $datapath)

    # write output to data file
    Write-Output "Microsoft 365 IP and UL Web Service data" | Out-File $datapath
    Write-Output "Worldwide instance" | Out-File $datapath -Append
    Write-Output "" | Out-File $datapath -Append
    Write-Output ("Version: " + $version.latest) | Out-File $datapath -Append
    Write-Output "" | Out-File $datapath -Append
    Write-Output "IPv4 Firewall IP Address Ranges" | Out-File $datapath -Append
    ($flatIp4s.ip | Sort-Object -Unique) -join "," | Out-File $datapath -Append
    Write-Output "" | Out-File $datapath -Append
    Write-Output "IPv6 Firewall IP Address Ranges" | Out-File $datapath -Append
    ($flatIp6s.ip | Sort-Object -Unique) -join "," | Out-File $datapath -Append
    Write-Output "" | Out-File $datapath -Append
    Write-Output "URLs for Proxy Server" | Out-File $datapath -Append
    ($flatUrls.url | Sort-Object -Unique) -join "," | Out-File $datapath -Append
}
else {
    Write-Host "Microsoft 365 worldwide commercial service instance endpoints are up-to-date."
}

Örnek Python Betiği

İşte Windows 10'da Python 3.6.3 ile test edilen ve güncelleştirilmiş veriler için yapmanız gereken eylemler olup olmadığını görmek için çalıştırabileceğiniz bir Python betiği. Bu betik, Microsoft 365 Worldwide örnek uç noktalarının sürüm numarasını denetler. Bir değişiklik olduğunda, İzin Ver ve İyileştir kategori uç noktaları için uç noktaları ve filtreleri indirir. Ayrıca birden çok çağrıda benzersiz bir ClientRequestId kullanır ve geçici bir dosyada bulunan en son sürümü kaydeder. Sürüm güncelleştirmesini denetlemek için bu betiği saatte bir kez çağır.

import json
import tempfile
from pathlib import Path
import urllib.request
import uuid
# helper to call the webservice and parse the response
def webApiGet(methodName, instanceName, clientRequestId):
    ws = "https://endpoints.office.com"
    requestPath = ws + '/' + methodName + '/' + instanceName + '?clientRequestId=' + clientRequestId
    request = urllib.request.Request(requestPath)
    with urllib.request.urlopen(request) as response:
        return json.loads(response.read().decode())
# path where client ID and latest version number will be stored
datapath = Path(tempfile.gettempdir() + '/endpoints_clientid_latestversion.txt')
# fetch client ID and version if data exists; otherwise create new file
if datapath.exists():
    with open(datapath, 'r') as fin:
        clientRequestId = fin.readline().strip()
        latestVersion = fin.readline().strip()
else:
    clientRequestId = str(uuid.uuid4())
    latestVersion = '0000000000'
    with open(datapath, 'w') as fout:
        fout.write(clientRequestId + '\n' + latestVersion)
# call version method to check the latest version, and pull new data if version number is different
version = webApiGet('version', 'Worldwide', clientRequestId)
if version['latest'] > latestVersion:
    print('New version of Microsoft 365 worldwide commercial service instance endpoints detected')
    # write the new version number to the data file
    with open(datapath, 'w') as fout:
        fout.write(clientRequestId + '\n' + version['latest'])
    # invoke endpoints method to get the new data
    endpointSets = webApiGet('endpoints', 'Worldwide', clientRequestId)
    # filter results for Allow and Optimize endpoints, and transform these into tuples with port and category
    flatUrls = []
    for endpointSet in endpointSets:
        if endpointSet['category'] in ('Optimize', 'Allow'):
            category = endpointSet['category']
            urls = endpointSet['urls'] if 'urls' in endpointSet else []
            tcpPorts = endpointSet['tcpPorts'] if 'tcpPorts' in endpointSet else ''
            udpPorts = endpointSet['udpPorts'] if 'udpPorts' in endpointSet else ''
            flatUrls.extend([(category, url, tcpPorts, udpPorts) for url in urls])
    flatIps = []
    for endpointSet in endpointSets:
        if endpointSet['category'] in ('Optimize', 'Allow'):
            ips = endpointSet['ips'] if 'ips' in endpointSet else []
            category = endpointSet['category']
            # IPv4 strings have dots while IPv6 strings have colons
            ip4s = [ip for ip in ips if '.' in ip]
            tcpPorts = endpointSet['tcpPorts'] if 'tcpPorts' in endpointSet else ''
            udpPorts = endpointSet['udpPorts'] if 'udpPorts' in endpointSet else ''
            flatIps.extend([(category, ip, tcpPorts, udpPorts) for ip in ip4s])
    print('IPv4 Firewall IP Address Ranges')
    print(','.join(sorted(set([ip for (category, ip, tcpPorts, udpPorts) in flatIps]))))
    print('URLs for Proxy Server')
    print(','.join(sorted(set([url for (category, url, tcpPorts, udpPorts) in flatUrls]))))

    # TODO send mail (e.g. with smtplib/email modules) with new endpoints data
else:
    print('Microsoft 365 worldwide commercial service instance endpoints are up-to-date')

Web Hizmeti arabirimi sürüm oluşturma

Gelecekte bu web hizmeti yöntemleri için parametrelerde veya sonuçlarda güncelleştirme yapılması gerekebilir. Bu web hizmetlerinin genel kullanılabilirlik sürümü yayımlandıktan sonra, Microsoft web hizmetine malzeme güncelleştirmeleri için önceden bildirim sağlamak için makul çaba gösterecektir. Microsoft bir güncelleştirmenin web hizmetini kullanan istemcilerde değişiklik gerektirdiğine inandığında, Microsoft web hizmetinin önceki sürümünü (bir sürüm geri) yeni sürümün yayımlanmasından sonra en az 12 ay boyunca kullanılabilir durumda tutar. Bu süre boyunca yükseltme yapmayan müşteriler web hizmetine ve yöntemlerine erişemeyebilir. Web hizmeti arabirimi imzasına aşağıdaki değişiklikler yapılırsa müşteriler web hizmeti istemcilerinin hatasız çalışmaya devam ettiğinden emin olmalıdır:

  • Eski istemciler tarafından sağlanması gerekmeyen ve eski bir istemcinin aldığı sonucu etkilemeyen mevcut bir web yöntemine yeni bir isteğe bağlı parametre ekleme.
  • Yanıt REST öğelerinden birine veya diğer sütunlardan birine yanıt CSV'sine yeni bir adlandırılmış öznitelik ekleme.
  • Eski istemciler tarafından çağrılmıyor yeni bir ada sahip yeni bir web yöntemi ekleme.

Bildirimleri güncelleştirme

IP adreslerinde ve URL'lerde yapılan değişiklikler web hizmetinde yayımlandığında e-posta bildirimleri almak için birkaç farklı yöntem kullanabilirsiniz.

Proxy PAC dosyasını dışarı aktarma

Get-PacFile , Microsoft 365 IP Adresi ve URL web hizmetinden en son ağ uç noktalarını okuyan ve örnek bir PAC dosyası oluşturan bir PowerShell betiğidir. Get-PacFile kullanma hakkında bilgi için bkz. Önemli Microsoft 365 trafiğini doğrudan yönlendirmek için PAC dosyası kullanma.

Microsoft 365 URL'leri ve IP adresi aralıkları

Microsoft 365 uç noktalarını yönetme

Microsoft 365 Ağ Bağlantı İlkeleri

Microsoft 365 ağ ve performans ayarlama

Microsoft 365 ağ bağlantısını değerlendirme

Skype Kurumsal Çevrimiçi Sürüm'de Medya Kalitesi ve Ağ Bağlantısı Performansı

Skype Kurumsal Çevrimiçi Sürüm için ağınızı iyileştirme

Temelleri ve performans geçmişini kullanarak Microsoft 365 performans ayarlama

Microsoft 365 için performans sorunlarını giderme planı