Network: Difference between revisions
(11 intermediate revisions by 5 users not shown) | |||
Line 6: | Line 6: | ||
== CDN == | == CDN == | ||
The URLs for content delivery network servers on the Switch usually follow this format: | The URLs for content delivery network servers on the Switch usually follow this format: | ||
{server_name}.hac.{environment}.{serverset}. | {server_name}.hac.{environment}.{serverset}.{host} | ||
Where: | Where: | ||
{server_name}: One of the registered server names. | {server_name}: One of the registered server names. | ||
{environment}: "dp1", "lp1", "sp1", "dd1", "jd1", "sd1", "td1" or "xd1". | {environment}: "dp1", "lp1", "sp1", "dd1", "jd1", "sd1", "td1" or "xd1". | ||
{serverset}: "eshop" (online shop) | {serverset}: "eshop" (online shop), "d4c" (content delivery) or "dragons" (online membership). | ||
{host}: "nintendo.net" (global cdn), "n.nintendoswitch.cn" (chinese cdn). | |||
=== Servers === | === Servers === | ||
Line 18: | Line 19: | ||
* "[[#atum/atumn|atum.hac.%.d4c.nintendo.net]]" | * "[[#atum/atumn|atum.hac.%.d4c.nintendo.net]]" | ||
* "[[#atum/atumn|atumn.hac.%.d4c.nintendo.net]]" | * "[[#atum/atumn|atumn.hac.%.d4c.nintendo.net]]" | ||
* "atumn-dummy.hac.%.d4c.nintendo.net" | |||
* "[[#superfly|superfly.hac.%.d4c.nintendo.net]]" | * "[[#superfly|superfly.hac.%.d4c.nintendo.net]]" | ||
* "bugyo.hac.%.eshop.nintendo.net" | * "bugyo.hac.%.eshop.nintendo.net" | ||
Line 24: | Line 26: | ||
* "[[#tagaya|tagaya.hac.%.eshop.nintendo.net]]" | * "[[#tagaya|tagaya.hac.%.eshop.nintendo.net]]" | ||
* [5.0.0+] "[[#pearljam|pearljam.hac.%.eshop.nintendo.net]]" | * [5.0.0+] "[[#pearljam|pearljam.hac.%.eshop.nintendo.net]]" | ||
* [6.0.0+] "dragons.hac.%.dragons.nintendo.net" | |||
* [6.0.0+] "dragonst.hac.%.dragons.nintendo.net" | |||
* [6.0.0+] "[[#tigers|tigers.hac.%.dragons.nintendo.net]]" | |||
* [14.0.0+] "[[#veer|veer.hac.%%.d4c.nintendo.net]]" | |||
==== sun ==== | ==== sun ==== | ||
Line 55: | Line 61: | ||
CDN for system-titles. | CDN for system-titles. | ||
"atumn" is for system-titles and "atum" is for eShop titles. | |||
'a' is used when an input u8 is not 0x3, otherwise 's' is used. A seperate function using the ".../c/" URL is hard-coded to use 'c'. This appears to match 's' usage attempts: the only URL that returned actual data with 's' was with titleID 0100000000000816. | 'a' is used when an input u8 is not 0x3, otherwise 's' is used. A seperate function using the ".../c/" URL is hard-coded to use 'c'. This appears to match 's' usage attempts: the only URL that returned actual data with 's' was with titleID 0100000000000816. | ||
Line 93: | Line 99: | ||
[5.0.0+] "<nowiki>https://pearljam.hac.%.eshop.nintendo.net/sugar</nowiki>" | [5.0.0+] "<nowiki>https://pearljam.hac.%.eshop.nintendo.net/sugar</nowiki>" | ||
[5.0.0+] "<nowiki>https://pearljam.hac.%.eshop.nintendo.net/civil</nowiki>" | [5.0.0+] "<nowiki>https://pearljam.hac.%.eshop.nintendo.net/civil</nowiki>" | ||
==== tigers ==== | |||
Used for fetching common tickets for title updates. | |||
==== veer ==== | |||
URLs: | |||
"<nowiki>https://veer.hac.%%.d4c.nintendo.net/v3/policy.json?context=%s</nowiki>" | |||
== Shop API == | == Shop API == | ||
Line 102: | Line 115: | ||
==== ecs ==== | ==== ecs ==== | ||
These URL strings were removed from nim with [15.0.0+]. | |||
URLs: | URLs: | ||
"<nowiki>https://ecs-%.hac.shop.nintendo.net/ecs/services/rest/AccountGetETickets</nowiki>" | "<nowiki>https://ecs-%.hac.shop.nintendo.net/ecs/services/rest/AccountGetETickets</nowiki>" | ||
Line 107: | Line 122: | ||
==== ias ==== | ==== ias ==== | ||
These URL strings were removed from nim with [15.0.0+]. | |||
URLs: | URLs: | ||
"<nowiki>https://ias-%.hac.shop.nintendo.net/ias/services/rest/Register</nowiki>" | "<nowiki>https://ias-%.hac.shop.nintendo.net/ias/services/rest/Register</nowiki>" | ||
Line 136: | Line 153: | ||
* "broker.%.npns.srv.nintendo.net" | * "broker.%.npns.srv.nintendo.net" | ||
* "consumer.%.npns.srv.nintendo.net" | * "consumer.%.npns.srv.nintendo.net" | ||
* "receive-%.dg.srv.nintendo.net" | * "[[BCAT_services#Data_reporting|receive-%.dg.srv.nintendo.net]]" | ||
* "receive-%.er.srv.nintendo.net" | * "[[Error_Upload_services|receive-%.er.srv.nintendo.net]]" | ||
* "nncs1-%.n.n.srv.nintendo.net" | |||
* "nncs2-%.n.n.srv.nintendo.net" | |||
* "g<game_server_id>-%.s.n.srv.nintendo.net" | |||
* [4.0.0+] "[[#migration|migration.%.scsi.srv.nintendo.net]]" | |||
* [6.0.0+] "[[#storage|storage.%.scsi.srv.nintendo.net]]" | |||
* [9.0.0+] "[[#storage|storage.%.sata.srv.nintendo.net]]" | |||
* [9.0.0+] "[[#permission|permission.%.sata.srv.nintendo.net]]" | |||
==== aauth ==== | ==== aauth ==== | ||
Line 172: | Line 196: | ||
<code><nowiki><?xml version="1.0"?><stream:stream to="app-a04.lp1.npns.srv.nintendo.net" xml:lang="en" version="1.0" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams"></nowiki></code> | <code><nowiki><?xml version="1.0"?><stream:stream to="app-a04.lp1.npns.srv.nintendo.net" xml:lang="en" version="1.0" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams"></nowiki></code> | ||
==== migration ==== | |||
[[Migration_services|Migration]] service storage. | |||
==== storage ==== | |||
[[OLSC_services|OLSC]] service (.scsi) and repair service (.sata) storage. | |||
==== permission ==== | |||
[[OLSC_services|OLSC]] repair service survey request. | |||
<nowiki>https://permission.%.sata.srv.nintendo.net/api/nx/v1/customer_operations</nowiki> | |||
<nowiki>https://permission.%.sata.srv.nintendo.net/api/nx/v1/customer_operations?survey_request_id=%llu</nowiki> | |||
Request headers: | |||
> User-Agent: libcurl (nnHttp; 789f928b-138e-4b2f-afeb-1acae821d897; SDK {x.x.x.x sdkver}; Add-on {x.x.x.x sdkver}) | |||
> Accept: */* | |||
> X-Device-Token: {device-token from dauth for SATA} | |||
> Content-Type: application/json | |||
Response (without survey_request_id): {"survey_requests":[]} | |||
== Others == | == Others == | ||
Line 179: | Line 223: | ||
Account metadata: | Account metadata: | ||
* "e0d67c509fb203858ebcb2fe3f88c2aa.baas.nintendo.com" | * "e0d67c509fb203858ebcb2fe3f88c2aa.baas.nintendo.com" | ||
* "accounts.nintendo.com" | |||
* "api.accounts.nintendo.com" | * "api.accounts.nintendo.com" | ||
* "c-%.accounts.nintendo.com" | |||
* "capi.%.op2.nintendo.net" | |||
News and game content: | News, friends and game content: | ||
* "bcat-topics-%.cdn.nintendo.net" | * "bcat-topics-%.cdn.nintendo.net" | ||
* "bcat-list-%.cdn.nintendo.net" | * "bcat-list-%.cdn.nintendo.net" | ||
* " | * "bcat-data-%.cdn.nintendo.net" | ||
* " | * "bcat-web-%.cdn.nintendo.net" | ||
* "app.%.five.nintendo.net" | |||
* [6.0.0+] "scsi-policy-%.cdn.nintendo.net" | |||
NSO webapplet [11.0.0+]: | |||
* "%.nso.nintendo.net" | |||
* "atum-img-%.cdn.nintendo.net" | |||
Connection: | Connection: | ||
Line 191: | Line 244: | ||
* "nasc.nintendowifi.net" | * "nasc.nintendowifi.net" | ||
[[Error_applet]]: | Error and status: | ||
* "[[#service-status|service-status-%.cdn.nintendo.net]]" | |||
* "problems.dragons.nintendo.net" | |||
* "moon.nintendo.com" | |||
==== scsi-policy ==== | |||
Used by [[OLSC_services|OLSC]] and [[Migration_services|migration]]. | |||
URLs: | |||
<nowiki>"https://scsi-policy-%.cdn.nintendo.net/api/nx/v1/save_data_migration_policy/%016llx/%05u?dtoken="</nowiki> | |||
* save_data_migration_policy: "%016llx" is the [[NCM_services#ApplicationId|ApplicationId]], "%05u" is version>>16 from [[NS_services#IApplicationVersionInterface|ns GetLaunchRequiredVersion]]. The value of dtoken is the dauth edge token for scsi. The request headers are: "User-Agent: libcurl (nnHttp;..." and "Accept: */*". | |||
** The response json is <code>{"save_data_migration": <str>}</code>, where <code><str></code> is "OK" or "NG" (other values trigger error). | |||
==== service-status ==== | |||
[[Error_applet|Error applet]] status. | |||
URLs: | |||
"<nowiki>https://service-status-%.cdn.nintendo.net/service_status_hac.json</nowiki>" | |||
= User-Agent = | = User-Agent = |