1import{a as ke}from"./chunk-S24WHALA.js";import{a as ge,b as he,d as ve,f as _e,h as ye,i as be}from"./chunk-P7IPYHVD.js";import{e as le}from"./chunk-DZJLDGDX.js";import{a as pe}from"./chunk-XIDQTM5U.js";import"./chunk-AAJQLP5Z.js";import{a as ue,g as fe,l as xe}from"./chunk-KIMEUGPZ.js";import{a as ce}from"./chunk-U6NAD27T.js";import{k as oe,l as re}from"./chunk-ZABN6TMN.js";import{a as se,b as me}from"./chunk-Y3HRZFE2.js";import{a as de}from"./chunk-RNEUXFNV.js";import{Ca as r,Db as F,Eb as Y,Fb as o,Ga as K,Gb as f,Ha as X,Hb as p,Ib as J,J as B,Lb as M,Mb as k,Nb as g,Pa as Z,Pb as C,Qb as S,T as _,Vb as E,Wb as Q,Xb as ee,Y as T,Z as A,aa as V,ac as te,ba as G,cb as I,db as c,eb as u,g as N,gb as R,hb as y,ia as L,ib as b,jb as x,ka as j,kb as i,lb as t,mb as d,n as O,o as $,oa as D,oc as ie,p as q,q as H,sb as z,tc as ne,ub as w,uc as ae,wa as W,wb as s}from"./chunk-NTMKCOJS.js";import"./chunk-IM5V7DCU.js";var we=(a,e)=>e.value,Pe=(a,e)=>e.url,Ce=(a,e)=>e.key,Te=(a,e)=>e.code;function Ae(a,e){a&1&&(d(0,"span",65),o(1," Looking Up... "))}function De(a,e){a&1&&(d(0,"app-lucide-icon",66),o(1," Look Up "))}function Re(a,e){a&1&&(i(0,"div",14),o(1," Enter an IP address, domain name, or URL. "),t())}function ze(a,e){a&1&&(i(0,"div",14),o(1," Enter 253 characters or fewer after removing the URL path. "),t())}function Fe(a,e){a&1&&(i(0,"div",14),o(1," Enter a valid IPv4 address, IPv6 address, hostname, or HTTP/HTTPS URL. "),t())}function Me(a,e){if(a&1){let n=z();i(0,"button",67),w("click",function(){let m=T(n).$implicit,h=s();return A(h.lookupExample(m.value))}),o(1),t()}if(a&2){let n=e.$implicit;I("aria-label",`${n.label}. Look up example ${n.value}`),r(),p(" ",n.label," ")}}function Ue(a,e){if(a&1){let n=z();i(0,"div",19),d(1,"app-lucide-icon",68),i(2,"div",69)(3,"p"),o(4),t(),i(5,"button",70),w("click",function(){T(n);let m=s();return A(m.retryLookup())}),o(6," Try Again "),t()()()}if(a&2){s();let n=g(10);r(4),f(n)}}function Ne(a,e){a&1&&(i(0,"div",20)(1,"div",71),d(2,"div",72),i(3,"span"),o(4,"Checking Azure Public Cloud service tags..."),t()()())}function Oe(a,e){if(a&1&&o(0),a&2){s(2);let n=g(11);J(" ",n," Azure Service Tag ",n===1?"Match":"Matches"," ")}}function $e(a,e){a&1&&o(0," No Azure Service Tag Matches ")}function qe(a,e){if(a&1&&(o(0," The lookup service resolved "),i(1,"code",84),o(2),t(),o(3," to "),i(4,"code",84),o(5),t(),o(6," for this request. ")),a&2){s(3);let n=g(9),l=g(13);r(2),f(n),r(3),f(l)}}function He(a,e){a&1&&o(0," Domain lookups use the address resolved by the lookup service for that request. ")}function Be(a,e){if(a&1&&(i(0,"div",81),d(1,"app-lucide-icon",83),i(2,"p",28),c(3,qe,7,2)(4,He,1,0),o(5," DNS answers can vary by location and time. "),t()()),a&2){s(2);let n=g(13);r(3),u(n?3:4)}}function Ve(a,e){if(a&1&&(i(0,"a",105),C(1,"routerUrl"),o(2),t()),a&2){s(2);let n=g(0);x("routerLink",S(1,2,e)),r(2),p(" ",n.regionDisplayName," ")}}function Ge(a,e){if(a&1&&o(0),a&2){s(2);let n=g(0);p(" ",n.regionDisplayName," ")}}function je(a,e){if(a&1&&(i(0,"article",85)(1,"div",98)(2,"h3",29),o(3,"Most Specific Match"),t(),i(4,"span",99),o(5),t()(),i(6,"dl",100)(7,"div",77)(8,"dt",101),o(9,"Service tag"),t(),i(10,"dd",102)(11,"a",103),C(12,"routerUrl"),o(13),t()()(),i(14,"div",77)(15,"dt",101),o(16,"Prefix"),t(),i(17,"dd",84),o(18),t()(),i(19,"div",77)(20,"dt",101),o(21,"Region"),t(),i(22,"dd",104),c(23,Ve,3,4,"a",105)(24,Ge,1,1),t()(),i(25,"div",77)(26,"dt",101),o(27,"System service"),t(),i(28,"dd",106),o(29),t()()()()),a&2){let n;s();let l=g(0),m=s(2);r(5),p(" ",l.scopeLabel," "),r(6),x("routerLink",S(12,6,m.serviceTagHref(l.serviceTagId))),r(2),p(" ",l.serviceTagId," "),r(5),p(" ",l.ipAddressPrefix," "),r(5),u((n=l.regionHref)?23:24,n),r(6),p(" ",l.systemServiceDisplayName," ")}}function We(a,e){if(a&1&&(i(0,"a",115),C(1,"routerUrl"),o(2),t()),a&2){let n=s(2).$implicit;x("routerLink",S(1,2,e)),r(2),p(" ",n.regionDisplayName," ")}}function Ke(a,e){if(a&1&&(i(0,"span",16),o(1),t()),a&2){let n=s(2).$implicit;r(),f(n.regionDisplayName)}}function Xe(a,e){if(a&1&&c(0,We,3,4,"a",115)(1,Ke,2,1,"span",16),a&2){let n,l=s().$implicit;u((n=l.regionHref)?0:1,n)}}function Ze(a,e){if(a&1&&(i(0,"span",116),o(1),t()),a&2){let n=e.$implicit;r(),f(n)}}function Ye(a,e){if(a&1&&(i(0,"div",114),y(1,Ze,2,1,"span",116,R),t()),a&2){let n=s().$implicit;r(),b(n.networkFeatureCodes)}}
1function Je(a,e){a&1&&(i(0,"span",16),o(1,"Not specified"),t())}function Qe(a,e){if(a&1&&(i(0,"tr")(1,"td",107)(2,"code",108),o(3),t()(),i(4,"td",107)(5,"a",109),C(6,"routerUrl"),o(7),t()(),i(8,"td",110),o(9),t(),i(10,"td",107)(11,"div",111)(12,"span",112),o(13),t(),c(14,Xe,2,1),t()(),i(15,"td",113),o(16),t(),i(17,"td",107),c(18,Ye,3,0,"div",114)(19,Je,2,0,"span",16),t()()),a&2){let n=e.$implicit,l=s(3);r(3),f(n.ipAddress),r(2),x("routerLink",S(6,8,l.serviceTagHref(n.serviceTagId))),r(2),p(" ",n.serviceTagId," "),r(2),p(" ",n.ipAddressPrefix," "),r(4),f(n.scopeLabel),r(),u(n.scopeLabel==="Regional"?14:-1),r(2),p(" ",n.systemServiceDisplayName," "),r(2),u(n.networkFeatureCodes.length?18:19)}}function et(a,e){if(a&1&&(i(0,"a",105),C(1,"routerUrl"),o(2),t()),a&2){let n=s().$implicit;x("routerLink",S(1,2,e)),r(2),p(" ",n.regionDisplayName," ")}}function tt(a,e){if(a&1&&o(0),a&2){let n=s().$implicit;p(" ",n.regionDisplayName," ")}}function it(a,e){if(a&1&&(i(0,"span",122),o(1),t()),a&2){let n=e.$implicit;r(),f(n)}}function nt(a,e){if(a&1&&(i(0,"div",114),y(1,it,2,1,"span",122,R),t()),a&2){let n=s().$implicit;r(),b(n.networkFeatureCodes)}}function at(a,e){a&1&&(i(0,"span",16),o(1,"Not specified"),t())}function ot(a,e){if(a&1&&(i(0,"article",94)(1,"div",117)(2,"div",77)(3,"div",101),o(4,"Service tag"),t(),i(5,"a",118),C(6,"routerUrl"),o(7),t()(),i(8,"span",119),o(9),t()(),i(10,"dl",120)(11,"div",77)(12,"dt",101),o(13,"IP address"),t(),i(14,"dd",84),o(15),t()(),i(16,"div",77)(17,"dt",101),o(18,"Prefix"),t(),i(19,"dd",84),o(20),t()(),i(21,"div",77)(22,"dt",101),o(23,"Region"),t(),i(24,"dd",104),c(25,et,3,4,"a",105)(26,tt,1,1),t()(),i(27,"div",77)(28,"dt",101),o(29,"System service"),t(),i(30,"dd",106),o(31),t()(),i(32,"div",121)(33,"dt",101),o(34,"Network features"),t(),i(35,"dd"),c(36,nt,3,0,"div",114)(37,at,2,0,"span",16),t()()()()),a&2){let n,l=e.$implicit,m=s(3);r(5),x("routerLink",S(6,8,m.serviceTagHref(l.serviceTagId))),r(2),p(" ",l.serviceTagId," "),r(2),p(" ",l.scopeLabel," "),r(6),p(" ",l.ipAddress," "),r(5),p(" ",l.ipAddressPrefix," "),r(5),u((n=l.regionHref)?25:26,n),r(6),f(l.systemServiceDisplayName),r(5),u(l.networkFeatureCodes.length?36:37)}}function rt(a,e){if(a&1&&(i(0,"div",97)(1,"dt",123),o(2),t(),i(3,"dd",16),o(4),t()()),a&2){let n=e.$implicit;r(2),p(" ",n.code," "),r(2),f(n.label)}}function lt(a,e){if(a&1&&(M(0),c(1,je,30,8,"article",85),i(2,"div",86)(3,"h3",29),o(4,"All Matching Service Tags"),t(),i(5,"div",87)(6,"div",88)(7,"table",89)(8,"thead",90)(9,"tr")(10,"th",91),o(11,"IP address"),t(),i(12,"th",91),o(13,"Service tag"),t(),i(14,"th",91),o(15,"Prefix"),t(),i(16,"th",91),o(17,"Scope & region"),t(),i(18,"th",91),o(19,"System service"),t(),i(20,"th",91),o(21,"Network features"),t()()(),i(22,"tbody",92),y(23,Qe,20,10,"tr",null,Ce),t()()()(),i(25,"div",93),y(26,ot,38,10,"article",94,Ce),t()(),i(28,"div",95)(29,"h3",29),o(30,"Network Feature Legend"),t(),i(31,"dl",96),y(32,rt,5,2,"div",97,Te),t()()),a&2){let n=s(2),l=k(n.mostSpecificMatch());r(),u(l?1:-1),r(22),b(n.resultRows()),r(3),b(n.resultRows()),r(6),b(n.networkFeatureLegend)}}function dt(a,e){a&1&&(i(0,"div",82),d(1,"app-lucide-icon",124),i(2,"h3",125),o(3,"No Azure Public Cloud Match"),t(),i(4,"p",126),o(5," No matching Azure Public Cloud service tag was found for this address. "),t()())}function st(a,e){if(a&1&&(i(0,"section",21)(1,"header",73)(2,"div",74)(3,"div",75),d(4,"app-lucide-icon",76),t(),i(5,"div",77)(6,"h2",78),c(7,Oe,1,2)(8,$e,1,0),t(),i(9,"code",79),o(10),t()()(),d(11,"app-copy-button",80),t(),c(12,Be,6,1,"div",81),c(13,lt,34,2)(14,dt,6,0,"div",82),t()),a&2){let n=s(),l=g(9),m=g(11),h=g(12);r(3),F("bg-success",m>0)("bg-surface-muted",m===0),r(),Y(m>0?"text-success-foreground":"text-text-muted"),x("name",m>0?"check-circle":"search-x"),r(3),u(m>0?7:8),r(3),f(l),r(),x("text",h)("resetOn",h),r(),u(n.isDomainSearch()?12:-1),r(),u(m>0?13:14)}}function mt(a,e){if(a&1&&(i(0,"article",44)(1,"div",98)(2,"h3",127),o(3),t(),i(4,"div",128),d(5,"app-copy-button",129),i(6,"a",130),o(7," Open "),d(8,"app-lucide-icon",49),t()()(),i(9,"code",131),o(10),t()()),a&2){let n=e.$implicit;r(3),f(n.label),r(2),x("text",n.url)("ariaLabel",`Copy ${n.label} API example URL`),r(),x("href",n.url,W),I("aria-label",`Open ${n.label} API example in a new tab`),r(4),f(n.url)}}var pt=/^(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}$/,ct=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9A-Za-z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1\d|)\d)\.){3,3}(25[0-5]|(2[0-4]|1\d|)\d)|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1\d|)\d)\.){3,3}(25[0-5]|(2[0-4]|1\d|)\d))$/,ut=/^(?=.{1,253}$)(?!-)(?:[a-z0-9-]{1,63}\.)+[a-z0-9-]{2,63}$/i,Se="/Azure/IPLookup",ft="/api/ipAddress",xt=15e3,Ee=[{label:"Azure IPv4",value:"104.45.231.79"},{label:"Azure IPv6",value:"2603:1030:0800:0005:0000:0000:BFEE:A418"},{label:"Azure domain",value:"www.azure.com"}],gt=[{code:"API",label:"Service Tag Discovery API"},{code:"NSG",label:"Network Security Group rules"}
1,{code:"UDR",label:"User-defined routes"},{code:"FW",label:"Azure Firewall"},{code:"VSE",label:"Virtual network service endpoints"}],ht={centralfrance:"francecentral",chilec:"chilecentral",germanyn:"germanynorth",germanywc:"germanywestcentral",indiasouthcentral:"southcentralindia",switzerlandn:"switzerlandnorth",switzerlandw:"switzerlandwest"},Le=class a{seoService=_(se);http=_(ae);router=_(oe);document=_(V);regionService=_(pe);isBrowser=ie(_(j));lookupCancellation=new N;regionLookup=this.regionService.getRegionLookup();lookupRequestId=0;ipOrDomain=te(void 0);isLoading=L(!1);hasCompletedLookup=L(!1);currentSearchTerm=L("");result=L([]);errorMessage=L(null);shareableUrl=E(()=>!this.hasCompletedLookup()||this.errorMessage()?"":this.buildShareableUrl(this.currentSearchTerm()));resultRows=E(()=>this.result().map((e,n)=>this.createResultRow(e,n)));mostSpecificMatch=E(()=>this.resultRows().reduce((e,n)=>e?Ie(n)>Ie(e)?n:e:n,null));resolvedIpAddressesText=E(()=>[...new Set(this.resultRows().map(e=>e.ipAddress))].join(", "));isDomainSearch=E(()=>this.looksLikeDomain(this.currentSearchTerm()));lookupStatusMessage=E(()=>{let e=this.currentSearchTerm();if(this.isLoading())return e?`Looking up ${e}.`:"Looking up address.";let n=this.errorMessage();if(n)return n;if(!this.hasCompletedLookup())return"";let l=this.resultRows().length;return l?`${l} Azure service tag ${l===1?"match":"matches"} found for ${e}.`:`No Azure Public Cloud service tag matches found for ${e}.`});lookupExamples=Ee;networkFeatureLegend=gt;apiExamples=Ee.map(e=>({label:e.label,url:this.buildLookupApiUrl(e.value)}));lookupModel=ee(()=>({ipOrDomain:this.normalizeInput(this.ipOrDomain())}));ipLookupForm=ge(this.lookupModel,e=>{ye(e.ipOrDomain,{message:"An IP address or domain name is required."}),_e(e.ipOrDomain,253,{message:"Enter 253 characters or fewer."}),ve(e.ipOrDomain,({value:n})=>{let l=this.normalizeInput(n());if(l)return this.isValidIpOrDomain(l)?void 0:{kind:"invalidIpOrDomain",message:"Enter a valid IPv4, IPv6 address, or domain name."}})},{name:"ipLookup"});constructor(){_(G).onDestroy(()=>{this.lookupRequestId+=1,this.lookupCancellation.next(),this.lookupCancellation.complete()}),D(()=>{this.updateSeoMeta(this.ipOrDomain())}),D(()=>{let e=this.ipOrDomain();Q(()=>this.applyRouteSearchTerm(e))})}updateSeoMeta(e){this.seoService.setPageMeta({title:"Azure IP Address Lookup | Check Service Tags",description:"Check whether an IP address or domain belongs to Azure Public Cloud and identify matching service tags for network analysis and incident triage.",canonicalUrl:me("/Azure/IPLookup"),robots:this.normalizeInput(e)?"noindex, follow":void 0})}async submitForm(e){e?.preventDefault();let n=this.normalizeInput(this.lookupModel().ipOrDomain);this.lookupModel().ipOrDomain!==n&&this.lookupModel.set({ipOrDomain:n}),await he(this.ipLookupForm,async()=>{if(this.normalizeInput(this.ipOrDomain())===n){await this.performLookup(n);return}await this.router.navigateByUrl(this.buildLookupPageHref(n))})}applyRouteSearchTerm(e){if(!e){this.ipLookupForm().reset(),this.clearLookupState();return}let n=this.normalizeInput(e);if(n&&e!==n){this.router.navigateByUrl(this.buildLookupPageHref(n),{replaceUrl:!0});return}if(this.ipLookupForm().reset(),this.ipLookupForm.ipOrDomain().invalid()){this.ipLookupForm.ipOrDomain().markAsTouched(),this.clearLookupState(),this.router.navigateByUrl(Se,{replaceUrl:!0});return}n===this.currentSearchTerm()&&(this.isLoading()||this.hasCompletedLookup())||this.performLookup(n)}clearLookupState(){this.lookupRequestId+=1,this.lookupCancellation.next(),this.currentSearchTerm.set(""),this.result.set([]),this.isLoading.set(!1),this.hasCompletedLookup.set(!1),this.errorMessage.set(null)}normalizeInput(e){if(typeof e!="string")return"";let n=vt(e.trim());if(!n)return"";if(this.looksLikeDomain(n)||n.includes(":")){let l=n.toLowerCase();return l.endsWith(".")?l.slice(0,-1):l}return n}isValidIpOrDomain(e){return e?pt.test(e)||ct.test(e)||this.looksLikeDomain(e):!1}looksLikeDomain(e){let n=e.endsWith(".")?e.slice(0,-1):e;return n?ut.test(n):!1}async performLookup(e){let n=++this.lookupRequestId;this.lookupCancellation.next(),this.result.set([]),this.isLoading.set(!0),this.hasCompletedLookup.set(!1),this.currentSearchTerm.set(e),this.errorMessage.set(null);try{let l=await $(this.http.get(this.buildLookupApiUrl(e)).pipe(H(xt),B(this.lookupCancellation)));if(n!==this.lookupRequestId)return;if(!l){this.errorMessage.set(`The lookup service could not resolve or val
1idate "${e}". Check the address and try again.`),this.result.set([]);return}this.result.set(l)}catch(l){if(n!==this.lookupRequestId||l instanceof O)return;this.errorMessage.set(yt(l)),this.result.set([])}finally{n===this.lookupRequestId&&(this.isLoading.set(!1),this.hasCompletedLookup.set(!0))}}lookupExample(e){this.lookupModel.set({ipOrDomain:e}),this.submitForm()}retryLookup(){let e=this.currentSearchTerm();e&&this.performLookup(e)}createResultRow(e,n){let l=this.resolveRegion(e);return{serviceTagId:e.serviceTagId,ipAddress:e.ipAddress,ipAddressPrefix:e.ipAddressPrefix,key:`${e.ipAddress}|${e.serviceTagId}|${e.ipAddressPrefix}|${n}`,networkFeatureCodes:e.networkFeatures.split(/\s+/).filter(Boolean),regionDisplayName:l?.displayName??_t(e),regionHref:l?fe(l.displayName):null,scopeLabel:e.region?"Regional":"Global",systemServiceDisplayName:e.systemService||"Not specified"}}resolveRegion(e){let n=xe(e.region);if(!n)return null;let l=ht[n]??n;return this.regionLookup.get(l)??null}serviceTagHref(e){return le("public",e,!1)}buildShareableUrl(e){if(!this.isBrowser||!e)return"";let n=this.document.defaultView?.location.origin;return n?`${n}${this.buildLookupPageHref(e)}`:""}buildLookupPageHref(e){return`${Se}/${encodeURIComponent(e)}`}buildLookupApiUrl(e){return`${ue}${ft}?ipOrDomain=${encodeURIComponent(e)}`}static \u0275fac=function(n){return new(n||a)};static \u0275cmp=Z({type:a,selectors:[["app-ip-lookup"]],hostAttrs:[1,"block"],inputs:{ipOrDomain:[1,"ipOrDomain"]},decls:159,vars:17,consts:[[1,"page-shell","section-stack"],[1,"page-header","page-header--compact"],[1,"page-title"],[1,"page-lead"],["aria-labelledby","lookup-heading",1,"section-block"],["id","lookup-heading",1,"sr-only"],["novalidate","",1,"flex","flex-col","gap-2",3,"submit"],["for","ipOrDomain",1,"form-label"],[1,"flex","flex-col","gap-3","sm:flex-row","sm:items-center"],[1,"form-control-shell","min-w-0","flex-1"],["name","search","aria-hidden","true",1,"form-control-shell__icon","size-4"],["id","ipOrDomain","type","search","inputmode","url","enterkeyhint","search","placeholder","104.45.231.79 or www.azure.com...","autocapitalize","off","spellcheck","false","autocomplete","off",1,"form-control","form-control--icon-start","form-control-focus-ring",3,"formField"],["type","submit",1,"btn","btn-primary","btn--lg","w-full","sm:w-auto",3,"disabled"],["id","ip-lookup-help",1,"form-note"],["id","ip-lookup-validation-error","role","alert",1,"text-sm","text-danger-emphasis"],[1,"flex","flex-wrap","items-center","gap-2","text-sm"],[1,"text-text-muted"],["type","button",1,"btn","btn-outline","btn--sm"],["role","status","aria-live","polite","aria-atomic","true",1,"sr-only"],["role","alert",1,"alert","alert--error"],["aria-hidden","true",1,"rounded-lg","bg-surface-muted","px-4","py-8","text-center"],["aria-labelledby","lookup-results-heading",1,"card","space-y-5"],["aria-labelledby","use-cases-heading",1,"section-block"],["id","use-cases-heading",1,"section-title"],[1,"divide-y","divide-border-soft","overflow-hidden","rounded-lg","bg-surface-raised"],[1,"flex","items-start","gap-4","p-4"],[1,"flex","size-10","shrink-0","items-center","justify-center","rounded-lg","bg-primary/10"],["name","server","aria-hidden","true",1,"size-5","text-primary"],[1,"min-w-0"],[1,"font-semibold","text-text-strong"],[1,"mt-0.5","text-sm","text-text-muted"],["name","search","aria-hidden","true",1,"size-5","text-primary"],["name","shield-check","aria-hidden","true",1,"size-5","text-primary"],["aria-labelledby","faq-heading",1,"section-block"],["id","faq-heading",1,"section-title"],[1,"faq-list"],[1,"faq-item","group"],[1,"faq-summary"],[1,"faq-question"],["name","chevron-down","aria-hidden","true",1,"faq-icon"],[1,"faq-body"],[1,"faq-body","space-y-4"],["translate","no"],[1,"grid","gap-3"],[1,"rounded-lg","bg-surface-muted","p-3"],[1,"text-sm","text-text-muted"],["aria-labelledby","resources-heading",1,"section-block"],["id","resources-heading",1,"section-title"],["href","https://www.microsoft.com/en-us/download/details.aspx?id=56519","target","_blank","rel","noopener noreferrer","aria-label","Download Azure Public Cloud IP ranges (opens in new tab)",1,"link-primary","inline-flex","min-h-11","items-center","gap-1"],["name","external-link","aria-hidden","true",1,"size-3"],[1,"resource-grid"],[1,"card","card-resource"],[1,"flex","items-center","gap-3"],[1,"flex","size-9","items-center","justify-center","rounded-lg","bg-primary/10"],["name","github","aria-hidden","true",1,"size-5","text-primary"],[1,"card-title"],[1,"card-description"],["href","https://github.com/blrchen/azure-ip-lookup","target","_blank","rel","noopener noreferrer","aria-label","Explore Azure IP Lookup integration options (opens in new tab)",1,"card-cta"],["name","external-link","aria-hidden","true",1,"ml-1","size-3"],["name","tag","aria-hidden","true",1,"size-5","text-primary"],["href","https://learn.microsoft.com/azure/virtual-network/service-tags-overview","target","_blank","rel","noopener noreferrer","aria-label","Learn about Azure service tags (opens in new tab)",1,"card-cta"],["name","code","aria-hidden","true",1,"size-5","text-primary"],["href","https://learn.microsoft.com/rest/api/virtualnetwork/servicetags/list","target","_blank","rel","noopener noreferrer","aria-label","Explore Azure service tag automation guidance (opens in new tab)",1,"card-cta"],["name","terminal","aria-hidden","true",1,"size-5","text-primary"],["href","https://learn.microsoft.com/powershell/module/az.network/get
1-aznetworkservicetag","target","_blank","rel","noopener noreferrer","aria-label","Explore PowerShell workflow guidance (opens in new tab)",1,"card-cta"],["aria-hidden","true",1,"spinner-sm"],["name","search","aria-hidden","true",1,"size-4"],["type","button",1,"btn","btn-outline","btn--sm",3,"click"],["name","alert-circle","aria-hidden","true",1,"mt-0.5","size-5","shrink-0"],[1,"flex","min-w-0","flex-1","flex-col","gap-3","sm:flex-row","sm:items-center","sm:justify-between"],["type","button",1,"btn","btn-outline","btn--sm","shrink-0",3,"click"],[1,"flex","items-center","justify-center","gap-3","text-text-body"],[1,"spinner","text-brand"],[1,"flex","flex-col","gap-4","sm:flex-row","sm:items-start","sm:justify-between"],[1,"flex","min-w-0","items-start","gap-3"],[1,"mt-0.5","flex","size-9","shrink-0","items-center","justify-center","rounded-full"],["aria-hidden","true",1,"size-5",3,"name"],[1,"min-w-0","space-y-1"],["id","lookup-results-heading",1,"text-lg","font-bold","text-text-strong"],["translate","no",1,"block","max-w-full","font-mono","text-sm","break-all","text-text-body"],["icon","share-2","label","Share Result","successLabel","Link Copied","ariaLabel","Copy shareable lookup result link",3,"text","resetOn"],[1,"alert","alert--info"],[1,"rounded-lg","bg-surface-muted","p-5","text-center"],["name","globe","aria-hidden","true",1,"mt-0.5","size-5","shrink-0","text-primary"],["translate","no",1,"font-mono","break-all","text-text-strong"],[1,"space-y-3","rounded-lg","bg-primary/5","p-4"],[1,"space-y-3"],[1,"hidden","md:block"],[1,"table-shell"],[1,"table-base"],[1,"table-head"],["scope","col",1,"px-4","py-3","text-left"],[1,"divide-y","divide-border-soft"],[1,"flex","flex-col","gap-3","md:hidden"],[1,"min-w-0","overflow-hidden","rounded-lg","bg-surface-muted","p-4"],[1,"rounded-lg","bg-surface-muted","p-4"],[1,"mt-3","grid","gap-x-6","gap-y-2","text-sm","sm:grid-cols-2"],[1,"flex","items-start","gap-2"],[1,"flex","flex-wrap","items-center","justify-between","gap-2"],[1,"rounded-full","bg-primary/15","px-2.5","py-1","text-xs","font-semibold","text-text-strong"],[1,"grid","gap-4","text-sm","sm:grid-cols-2","lg:grid-cols-4"],[1,"eyebrow-xs"],[1,"break-all"],["translate","no",1,"link-primary","font-semibold",3,"routerLink"],[1,"text-text-body"],[1,"link-primary","font-semibold",3,"routerLink"],[1,"break-words","text-text-body"],[1,"px-4","py-3","align-top"],["translate","no",1,"text-sm","break-all"],["translate","no",1,"link-primary","font-semibold","break-all",3,"routerLink"],["translate","no",1,"px-4","py-3","align-top","font-mono","text-sm","break-all"],[1,"flex","flex-col","gap-0.5"],[1,"font-medium","text-text-body"],[1,"px-4","py-3","align-top","text-text-body"],[1,"flex","flex-wrap","gap-1.5"],[1,"link-primary",3,"routerLink"],["translate","no",1,"rounded","bg-surface-muted","px-1.5","py-0.5","font-mono","text-xs","text-text-body"],[1,"flex","min-w-0","items-start","justify-between","gap-3"],["translate","no",1,"link-primary","block","font-semibold","break-all",3,"routerLink"],[1,"shrink-0","rounded-full","bg-primary/10","px-2","py-1","text-xs","font-semibold","text-text-strong"],[1,"mt-4","grid","min-w-0","gap-3","text-sm","sm:grid-cols-2"],[1,"min-w-0","space-y-1","sm:col-span-2"],["translate","no",1,"rounded","bg-surface-raised","px-1.5","py-0.5","font-mono","text-xs","text-text-body"],["translate","no",1,"min-w-9","rounded","bg-surface-raised","px-1.5","py-0.5","text-center","font-mono","text-xs","font-semibold","text-text-strong"],["name","search-x","aria-hidden","true",1,"mx-auto","size-8","text-text-muted"],[1,"mt-3","font-semibold","text-text-strong"],[1,"mt-1","text-sm","leading-relaxed","text-text-muted"],[1,"text-sm","font-semibold","text-text-strong"],[1,"flex","flex-wrap","gap-2"],["label","Copy URL","successLabel","URL Copied",3,"text","ariaLabel"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-outline","btn--sm",3,"href"],["translate","no",1,"mt-2","block","font-mono","text-xs","break-all","text-text-body"]],template:function(n,l){if(n&1&&(i(0,"article",0)(1,"header",1)(2,"h1",2),o(3,"Azure IP & Service Tag Lookup"),t(),i(4,"p",3),o(5," Match IP addresses and domains to Azure Public regions and service tags. "),t()(),i(6,"section",4)(7,"h2",5),o(8,"Look Up an IP Address or Domain"),t(),M(9)(10)(11)(12)(13),i(14,"form",6),w("submit",function(h){return l.submitForm(h)}),i(15,"label",7),o(16,"IP address, domain, or URL"),t(),i(17,"div",8)(18,"div",9),d(19,"app-lucide-icon",10)(20,"input",11),K(),t(),i(21,"button",12),c(22,Ae,2,0)(23,De,2,0),t()(),i(24,"p",13),o(25," Paste an address or a full HTTP/HTTPS URL. URLs are reduced to their hostname before lookup. "),t(),c(26,Re,2,0,"div",14)(27,ze,2,0,"div",14)(28,Fe,2,0,"div",14),t(),i(29,"div",15)(30,"span",16),o(31,"Try an example:"),t(),y(32,Me,2,2,"button",17,we),t(),i(34,"p",18),o(35),t(),c(36,Ue,7,1,"div",19),c(37,Ne,5,0,"div",20),c(38,st,15,13,"section",21),t(),i(39,"section",22)(40,"h2",23),o(41,"Common Use Cases"),t(),i(42,"div",24)(43,"div",25)(44,"div",26),d(45,"app-lucide-icon",27),t(),i(46,"div",28)(47,"h3",29),o(48,"Network Review"),t(),i(49,"p",30),o(50," Review addresses referenced in firewall rules, allowlists, routing changes, and architecture assessments. "),t()()(),i(51,"div",25)(52,"div",26),d(53,"app-lucide-icon",31),t(),i(54,"div",28)(55,"h3",29),o(56,"Traffic Analysis"),t(),i(57,"p",30),o(58," Check addresses from access and flow logs to understand whether traffic is associated with Azure Public Cloud ranges. "),t()()(),i(59,"div",25)(60,"div",26),d(61,"app-lucide-icon",32),t(),i(62,"div",28)(63,"h3",29),o(64,"Incident Triage"),t(),i(65,"p",30),o(66," Add Azure service tag and region context to security alerts and mitigation logs. "),t()()()()(),i(67,"section",33)(68,"h2",34),o(69,"Frequently Asked Questions"),t(),i(70,"div",35)(71,"details",36)(72,"summary",37)(73,"span",38),o(74,"Why can one address match multiple service tags?"),t(),d(75,"app-lucide-icon",39),t(),i(76,"div",40),o(77," Azure prefixes overlap by design. One address can match a service-specific tag, its regional variant, a regional AzureCloud tag, and the global AzureCloud tag. The most specific match uses the narrowest prefix and most specific regional scope returned by the lookup. "),t()(),i(78,"details",36)(79,"summary",37)(80,"span",38),o(81,"How are domain names and URLs handled?"),t(),d(82,"app-lucide-icon",39),t(),i(83,"div",40),o(84," A URL is reduced to its hostname. The lookup service resolves the hostname and checks the resulting address against Azure Public Cloud service tags. DNS answers can change by location and time, so repeating a domain lookup can produce different results. "),t()(),i(85,"details",36)(86,"summary",37)(87,"span",38),o(88,"Does the lookup support IPv6 addresses?"),t(),d(89,"app-lucide-icon",39),t(),i(90,"div",40),o(91," Yes. The tool accepts IPv4, IPv6, domain names, and HTTP/HTTPS URLs. IPv6 prefixes are displayed in the notation returned by the lookup API. "),t()(),i(92,"details",36)(93,"summary",37)(94,"span",38),o(95,"Can I automate lookups?"),t(),d(96,"app-lucide-icon",39),t(),i(97,"div",41)(98,"p"),o(99," Yes. Send a GET request to "),i(100,"code",42),o(101,"/api/ipAddress?ipOrDomain=<ipAddressOrDomain>"),t(),o(102,". Encode the query value and handle rate limits, timeouts, and transient failures in automated clients. "),t(),i(103,"div",43),y(104,mt,11,6,"article",44,Pe),t(),i(106,"p",45),o(107," The JSON response includes the resolved IP address, matching service tag, prefix, region, system service, and network feature codes. "),t()()()()(),i(108,"section",46)(109,"h2",47),o(110,"Additional Resources"),t(),i(111,"a",48),o(112," Download Azure Public Cloud IP ranges "),d(113,"a
1pp-lucide-icon",49),t(),i(114,"div",50)(115,"article",51)(116,"div",52)(117,"div",53),d(118,"app-lucide-icon",54),t(),i(119,"h3",55),o(120,"Integrate IP Lookup"),t()(),i(121,"p",56),o(122," Bring Azure range checks into network review and incident response workflows. "),t(),i(123,"a",57),o(124," Explore integration options "),d(125,"app-lucide-icon",58),t()(),i(126,"article",51)(127,"div",52)(128,"div",53),d(129,"app-lucide-icon",59),t(),i(130,"h3",55),o(131,"Understand service tags"),t()(),i(132,"p",56),o(133," Learn how service tags can simplify network rules and support consistent reviews. "),t(),i(134,"a",60),o(135," Learn about service tags "),d(136,"app-lucide-icon",58),t()(),i(137,"article",51)(138,"div",52)(139,"div",53),d(140,"app-lucide-icon",61),t(),i(141,"h3",55),o(142,"Automate range updates"),t()(),i(143,"p",56),o(144," Keep network review workflows current as Azure service tag ranges change. "),t(),i(145,"a",62),o(146," Explore automation guidance "),d(147,"app-lucide-icon",58),t()(),i(148,"article",51)(149,"div",52)(150,"div",53),d(151,"app-lucide-icon",63),t(),i(152,"h3",55),o(153,"Build PowerShell workflows"),t()(),i(154,"p",56),o(155," Add repeatable Azure range checks to operational and investigation workflows. "),t(),i(156,"a",64),o(157," Explore PowerShell guidance "),d(158,"app-lucide-icon",58),t()()()()()),n&2){let m=l.isLoading(),h=l.hasCompletedLookup();r(9),k(l.currentSearchTerm()),r();let U=k(l.errorMessage());r(),k(l.resultRows().length),r(),k(l.shareableUrl()),r(),k(l.resolvedIpAddressesText());let v=l.ipLookupForm.ipOrDomain(),P=v.invalid()&&v.touched();r(7),F("is-invalid",P),x("formField",l.ipLookupForm.ipOrDomain),I("aria-invalid",P?"true":null)("aria-describedby",P?"ip-lookup-help ip-lookup-validation-error":"ip-lookup-help"),X(),r(),x("disabled",m),r(),u(m?22:23),r(4),u(v.getError("required")&&v.touched()?26:v.getError("maxLength")&&v.touched()?27:v.getError("invalidIpOrDomain")&&v.touched()?28:-1),r(6),b(l.lookupExamples),r(3),p(" ",l.lookupStatusMessage()," "),r(),u(!m&&U?36:-1),r(),u(m?37:-1),r(),u(!m&&h&&!U?38:-1),r(66),b(l.apiExamples)}},dependencies:[re,be,de,ke,ce],encapsulation:2})};function vt(a){if(!/^https?:\/\//i.test(a))return a;try{let e=new URL(a).hostname;return e.startsWith("[")&&e.endsWith("]")?e.slice(1,-1):e}catch{return a}}function _t(a){return a.region?((a.serviceTagId.includes(".")?a.serviceTagId.slice(a.serviceTagId.lastIndexOf(".")+1):"")||a.region).replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2"):"Global"}function Ie(a){let e=Number.parseInt(a.ipAddressPrefix.split("/").at(-1)??"0",10),n=a.scopeLabel==="Regional"?20:0,l=a.serviceTagId.startsWith("AzureCloud")?0:10;return e*100+n+l}function yt(a){return a instanceof q?"The lookup timed out. Check your connection and try again.":a instanceof ne&&a.status===429?"Too many lookup requests were sent. Wait a moment and try again.":"The lookup service is unavailable right now. Try again in a moment."}export{Le as IPLookupComponent};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.