Javascript IP address control and MAC address control

Source: Internet
Author: User

Recently, due to project requirements, IP Control and MAC address control must be used on the page to beautify the interface. I found a good IP control on the Internet, but unfortunately I did not find the corresponding MAC address control. No way, self-reliance, it took two hours to transform the original IP control into a new MAC address control, it feels pretty good ~

IP control code (People's ):

 <HTML> <br/> <pead> <br/> <MCE: SCRIPT> <! -- <Br/>/** <br/> * by Li Shangjin. <br/> * [url] http://www.13j.cn [/url] <br/> **/<br/> function compute 4box (ID, pnode) {<br/> This. id = ID; <br/> This. onchange = new function (); <br/> This. onenterkey = new function (); <br/> This. disabled = false; <br/> quota 4box. all [ID] = This; <br/> If (pnode) <br/>{< br/> If (typeof pnode = "string ") <br/>{< br/> pnode = document. getelementbyid (pnode); <br/>}< br/> pnode. innerhtml = This. tostrin G (); <br/>}< br/> listen 4box. all ={}; <br/> 4154box. enabledclassname = "ipinput oneinput"; // style when enabled <br/> 4154box. disabledclassname = "ipinput oneinputdisabled"; // disabled style <br/> define 4box. prototype = {<br/>/** <br/> * activate IP box <br/> * @ Param {number} Index 1-4 specify the active location <br/> */<br/> focus: function (INDEX) {<br/> If (! Index) <br/> Index = 1; <br/> document. getelementbyid (this. ID + "_" + index ). focus (); <br/>}, <br/> setenable: function (benable) {<br/> var B =! Benable; <br/> This. Disabled =! Benable; <br/> var boxes = document. getelementbyid (this. ID ). getelementsbytagname ("input"); <br/> for (VAR I = 0; I <boxes. length; I ++) <br/>{< br/> boxes. readonly = B; <br/>}< br/> document. getelementbyid (this. ID ). classname = benable? Listen 4box. enabledclassname: ipv4box. disabledclassname <br/>}, <br/> tostring: function () {<br/> return '<span id = "' + this. ID + '"class ="' + 4154box. enabledclassname + '">/<br/> <input onkeypress =" 4154box. EVT. keypress (this, event) "onkeydown =" 1274box. EVT. keydown (this, event) "onfocus =" rj4box. EVT. focus (this, event) "onpaste =" pai4box. EVT. change (this, event); "oninput =" Limit 4box. EVT. change (this, event); "onchange =" Listen 4box. EVT. change (this, event); "type =" text "size = 3 id =" '+ this. ID + '_ 1 "maxlength = 3/<br/>. <input onkeypress = "00004box. EVT. keypress (this, event) "onkeydown =" 1274box. EVT. keydown (this, event) "onfocus =" rj4box. EVT. focus (this, event) "onpaste =" pai4box. EVT. change (this, event); "oninput =" Limit 4box. EVT. change (this, event); "onchange =" Limit 4box. EVT. change (this, event); "type =" text "size = 3 id =" '+ this. ID + '_ 2 "maxlen Bandwidth = 3/<br/>. <input onkeypress = "00004box. EVT. keypress (this, event) "onkeydown =" 1274box. EVT. keydown (this, event) "onfocus =" rj4box. EVT. focus (this, event) "onpaste =" pai4box. EVT. change (this, event); "oninput =" Limit 4box. EVT. change (this, event); "onchange =" Limit 4box. EVT. change (this, event); "type =" text "size = 3 id =" '+ this. ID + '_ 3 "maxlength = 3/<br/>. <input onkeypress = "00004box. EVT. keypress (this, event) "onkeydown = "Ipv4box. EVT. keydown (this, event) "onfocus =" rj4box. EVT. focus (this, event) "onpaste =" pai4box. EVT. change (this, event); "oninput =" Limit 4box. EVT. change (this, event); "onchange =" Limit 4box. EVT. change (this, event); "type =" text "size = 3 id =" '+ this. ID + '_ 4 "maxlength = 3/>/<br/> </span>'; <br/>}, <br/> getvalue: function () {<br/> var IP = [<br/> document. getelementbyid (this. ID + "_ 1 "). value, <br/> document. getelementbyid (thi S. ID + "_ 2 "). value, <br/> document. getelementbyid (this. ID + "_ 3 "). value, <br/> document. getelementbyid (this. ID + "_ 4 "). value <br/>]; <br/> return IP. join (". "); <br/>}, <br/> setvalue: function (IP) {<br/> IP = IP. replace (/[^/D.] /g, ""); <br/> If (IP = "") <br/>{< br/> IP = "... "<br/>}< br/> IP = IP. split (". "); <br/> document. getelementbyid (this. ID + "_ 1 "). value = IP [0]; <br/> document. getelementbyid (this. ID + "_ 2 "). value = IP [1]; <br/> document. getelementbyid (this. ID + "_ 3 "). value = IP [2]; <br/> document. getelementbyid (this. ID + "_ 4 "). value = IP [3]; <br/>}< br/> listen 4box. EVT = {<br/> focus: function (OBJ, EVT) {<br/> obj. select (); <br/>}, <br/> change: function (OBJ, EVT) {<br/> var v = parseint (obj. value); <br/> If (V> = 0 & V <= 255) <br/>{< br/> If (V! = Obj. value) <br/> obj. value = V; <br/>}< br/> else {<br/> obj. value = ""; <br/>}< br/> limit 4box. all [obj. id. replace (/_/d $/, "")]. onchange (); <br/>}, <br/> keypress: function (OBJ, EVT) {<br/> var key = EVT. charcode | EVT. keycode; <br/> var Pos = 4154box. EVT. getselection (OBJ); <br/> VaR value = obj. value; <br/> var c = string. fromcharcode (key); <br/> If (Key >=48 & Key <= 57) <br/>{< br/> value = "" + value. substring (0, POS. start) <br /> + C + value. substring (POS. end, value. length); <br/> If (parseint (value) <255) <br/>{< br/> var id = obj. ID; <br/> /(. *) _ (/d) $ /. test (ID); <br/> var Index = Regexp. $2; <br/> ip_id = Regexp. $1; <br/> If (parseint (value)> = 100) <br/>{< br/> If (parseint (INDEX) <4) <br/> {<br/> id = ID. replace (/d) $/, parseint (INDEX) + 1); <br/> setTimeout ("document. getelementbyid ('"+ ID + "'). focus (); "+ <br/>" document. getelementbyid ('"+ ID + "'). Select (); ", 200); <br/>}< br/> setTimeout (" Limit 4box. all ['"+ ip_id +"']. onchange () ", 0); <br/> return true; <br/>}< br/> else <br/>{< br/> If (EVT. preventdefault) <br/> EVT. preventdefault (); <br/> EVT. returnvalue = false; <br/> return false; <br/>}< br/> else {<br/> If (EVT. preventdefault) <br/> EVT. preventdefault (); <br/> EVT. returnvalue = false; <br/>}< br/>}, <br/> keydown: function (OBJ, EVT) {<br/> var Ke Y = EVT. charcode | EVT. keycode; <br/> var Pos = 4154box. EVT. getselection (OBJ); <br/> VaR value = obj. value; <br/> var c = string. fromcharcode (key); <br/> var id = obj. ID; <br/>/^ (. *) _ (/d) $ /. test (ID); <br/> var Index = Regexp. $2; <br/> var ip_id = Regexp. $1; <br/> switch (key) <br/>{< br/> case 13: // press ENTER <br/> export 4box. all [ip_id]. onenterkey (); <br/> break; <br/> Case 110 ://. keypad <br/> case 190 ://. primary keyboard <br/> If (index <4) <br/>{< br/> Id = ID. replace (/d) $/, parseint (INDEX) + 1); <br/> document. getelementbyid (ID ). focus (); <br/> document. getelementbyid (ID ). select (); <br/>}< br/> break; <br/> case 38: // up <br/> value =! Isnan (parseint (value ))? Parseint (value): ""; <br/> If (value = "") <br/> value = 0; <br/> If (value <255) <br/>{< br/> obj. value = value + 1; <br/>}< br/> else <br/> obj. value = 0; <br/> break; <br/> case 40: // down <br/> value =! Isnan (parseint (value ))? Parseint (value): ""; <br/> If (value = "") <br/> value = 255; <br/> If (value> 0) <br/>{< br/> obj. value = value-1; <br/>}; <br/> break; <br/> case 8: // backspace <br/> If (POS. start> 0) <br/> return; <br/> case 37: // left <br/> If (POS. end = 0 & index> 1) <br/>{< br/> id = ID. replace (/d) $/, parseint (INDEX)-1); <br/> document. getelementbyid (ID ). focus (); <br/> document. getelementbyid (ID ). select (); <br/>}< br/> break; <br/> case 39: // right <br/> If (POS. start = value. length & index <4) <br/>{< br/> id = ID. replace (/d) $/, parseint (INDEX) + 1); <br/> document. getelementbyid (ID ). focus (); <br/> document. getelementbyid (ID ). select (); <br/>}< br/> break; <br/>}< br/> }, <br/> // obtain the selection position <br/> getselection: function (oinput) {<br/> var T = This; <br/> If (oinput. createTextRange) {<br/> var S = document. selection. createRange (). duplicate (); <br/> S. movesta RT ("character",-oinput. value. length); <br/> var p1 = S. text. length; <br/> var S = document. selection. createRange (). duplicate (); <br/> S. moveend ("character", oinput. value. length); <br/> var P2 = oinput. value. lastindexof (S. text); <br/> If (S. TEXT = "") P2 = oinput. value. length; <br/> return {start: P2, end: P1 };< br/>}else {<br/> return {start: oinput. selectionstart, end: oinput. selectionend };< br/>}< br/> // --> </MCE: SCRIPT> <br/> <MCE: style type = "text/CSS"> <! -- <Br/>/* IP input box */<br/>. ipinput {<br/> border: 1px solid # CCC; <br/> font-size: 12px; <br/>}< br/>. ipinput input {<br/> border: 0px solid # CCC; <br/> font-size: 12px; <br/> Height: 16px; <br/> width: 24px; <br/> Background: transparent; <br/> text-align: center; <br/>}< br/> --> </MCE: style> <style type = "text/CSS" mce_bogus = "1">/* IP input box */<br/>. ipinput {<br/> border: 1px solid # CCC; <br/> font-size: 12px; <br/>}< br/>. I Pinput input {<br/> border: 0px solid # CCC; <br/> font-size: 12px; <br/> Height: 16px; <br/> width: 24px; <br/> Background: transparent; <br/> text-align: center; <br/>}</style> <br/> </pead> <br/> <body> <br/> <span id = "span1"> </span> <br/> <input type = "button" value = "ip1.getvalue" onclick = "alert (ip1.getvalue ()) "/> <br/> <p> <br/> <span id =" span2 "> </span> <br/> <MCE: script Type = "text/JavaScript"> <! -- <Br/> var IP1 = new ipv4box ("IP1"); <br/> document. getelementbyid ("span1 "). innerhtml = IP1; <br/> ip1.focus (1); // activate the first part of the input box <br/> ip1.onenterkey = function () {<br/> alert ("IP1 enterkey "); <br/>}< br/> // each successful input of a word triggers an onchange event. <br/> ip1.onchange = function () {<br/> window. status = "IP1 new IP:" + (this. getvalue (); <br/>}< br/> ip1.setvalue ("195.2.199.170"); <br/> var ip2 = new ipv4box ("ip2", "span2 "); <br/> // --> </MCE: SCRIPT> <br/> </body> <br/> </ptml> <br/>

MAC address control code (modified ):

 <HTML> <br/> <pead> <br/> <MCE: SCRIPT> <! -- <Br/>/** <br/> * by wirror800 <br/> **/<br/> function macbox (ID, pnode) {<br/> This. id = ID; <br/> This. onchange = new function (); <br/> This. onenterkey = new function (); <br/> This. disabled = false; <br/> macbox. all [ID] = This; <br/> If (pnode) <br/>{< br/> If (typeof pnode = "string ") <br/>{< br/> pnode = document. getelementbyid (pnode); <br/>}< br/> pnode. innerhtml = This. tostring (); <br/>}< br/> macbox. all = {}; <br /> Macbox. enabledclassname = "macinput oneinput"; // style when enabled <br/> macbox. disabledclassname = "macinput oneinputdisabled"; // disabled style <br/> macbox. prototype = {<br/>/** <br/> * activate the Mac box <br/> * @ Param {number} Index 1-6 specifies the location for activation <br/> */<br/> focus: function (INDEX) {<br/> If (! Index) <br/> Index = 1; <br/> document. getelementbyid (this. ID + "_" + index ). focus (); <br/>}, <br/> setenable: function (benable) {<br/> var B =! Benable; <br/> This. Disabled =! Benable; <br/> var boxes = document. getelementbyid (this. ID ). getelementsbytagname ("input"); <br/> for (VAR I = 0; I <boxes. length; I ++) <br/>{< br/> boxes. readonly = B; <br/>}< br/> document. getelementbyid (this. ID ). classname = benable? Macbox. enabledclassname: macbox. disabledclassname <br/>}, <br/> tostring: function () {<br/> return '<span id = "' + this. ID + '"class ="' + macbox. enabledclassname + '">/<br/> <input onkeypress =" macbox. EVT. keypress (this, event) "onkeydown =" macbox. EVT. keydown (this, event) "onfocus =" macbox. EVT. focus (this, event) "onpaste =" macbox. EVT. change (this, event); "oninput =" macbox. EVT. change (this, event); "onchange =" macbox. E Vt. change (this, event); "type =" text "size = 2 id =" '+ this. ID + '_ 1 "maxlength = 2/<br/>: <input onkeypress =" macbox. EVT. keypress (this, event) "onkeydown =" macbox. EVT. keydown (this, event) "onfocus =" macbox. EVT. focus (this, event) "onpaste =" macbox. EVT. change (this, event); "oninput =" macbox. EVT. change (this, event); "onchange =" macbox. EVT. change (this, event); "type =" text "size = 2 id =" '+ this. ID + '_ 2 "maxlength = 2/<br/>: <Input onkeypress = "macbox. EVT. keypress (this, event) "onkeydown =" macbox. EVT. keydown (this, event) "onfocus =" macbox. EVT. focus (this, event) "onpaste =" macbox. EVT. change (this, event); "oninput =" macbox. EVT. change (this, event); "onchange =" macbox. EVT. change (this, event); "type =" text "size = 2 id =" '+ this. ID + '_ 3 "maxlength = 2/<br/>: <input onkeypress =" macbox. EVT. keypress (this, event) "onkeydown =" macbox. EVT. keydown (T His, event) "onfocus =" macbox. EVT. focus (this, event) "onpaste =" macbox. EVT. change (this, event); "oninput =" macbox. EVT. change (this, event); "onchange =" macbox. EVT. change (this, event); "type =" text "size = 2 id =" '+ this. ID + '_ 4 "maxlength = 2/<br/>: <input onkeypress =" macbox. EVT. keypress (this, event) "onkeydown =" macbox. EVT. keydown (this, event) "onfocus =" macbox. EVT. focus (this, event) "onpaste =" macbox. EVT. change (this, Event); "oninput =" macbox. EVT. change (this, event); "onchange =" macbox. EVT. change (this, event); "type =" text "size = 2 id =" '+ this. ID + '_ 5 "maxlength = 2/<br/>: <input onkeypress =" macbox. EVT. keypress (this, event) "onkeydown =" macbox. EVT. keydown (this, event) "onfocus =" macbox. EVT. focus (this, event) "onpaste =" macbox. EVT. change (this, event); "oninput =" macbox. EVT. change (this, event); "onchange =" macbox. EVT. change (this, Event); "type =" text "size = 2 id =" '+ this. ID + '_ 6 "maxlength = 2/>/<br/> </span>'; <br/>}, <br/> getvalue: function () {<br/> var MAC = [<br/> document. getelementbyid (this. ID + "_ 1 "). value, <br/> document. getelementbyid (this. ID + "_ 2 "). value, <br/> document. getelementbyid (this. ID + "_ 3 "). value, <br/> document. getelementbyid (this. ID + "_ 4 "). value, <br/> document. getelementbyid (this. ID + "_ 5 "). value, <br/> document. getelement Byid (this. ID + "_ 6 "). value <br/>]; <br/> return Mac. join (":"); <br/>}, <br/> setvalue: function (MAC) {<br/> MAC = Mac. replace (/[^ [a-f0-9]:]/g, ""); <br/> If (MAC = "") <br/>{< br/> MAC = "::::" <br/>}< br/> MAC = Mac. split (":"); <br/> document. getelementbyid (this. ID + "_ 1 "). value = Mac [0]; <br/> document. getelementbyid (this. ID + "_ 2 "). value = Mac [1]; <br/> document. getelementbyid (this. ID + "_ 3 "). value = Mac [2]; <br/> lead E NT. getelementbyid (this. ID + "_ 4 "). value = Mac [3]; <br/> document. getelementbyid (this. ID + "_ 5 "). value = Mac [4]; <br/> document. getelementbyid (this. ID + "_ 6 "). value = Mac [5]; <br/>}< br/> macbox. EVT = {<br/> focus: function (OBJ, EVT) {<br/> obj. select (); <br/>}, <br/> change: function (OBJ, EVT) {<br/> var v = obj. value; <br/> var reghex = new Regexp ("(^ [a-f0-9] {} $) | (^ [A-F0-9] {} $ )"); <br/> if(reghex.exe C (V )! = NULL) {<br/> If (V! = Obj. value) <br/> obj. value = V; <br/>}< br/> else {<br/> obj. value = ""; <br/>}< br/> macbox. all [obj. id. replace (/_/d $/, "")]. onchange (); <br/>}, <br/> keypress: function (OBJ, EVT) {<br/> var key = EVT. charcode | EVT. keycode; <br/> var Pos = macbox. EVT. getselection (OBJ); <br/> VaR value = obj. value; <br/> var c = string. fromcharcode (key); <br/> If (Key >=48 & Key <= 57) | (Key >=65 & Key <= 70) | (Key> = 97 & Key <= 102) <br/> {< Br/> value = "" + value. substring (0, POS. start) + C + value. substring (POS. end, value. length); <br/> var reghex = new Regexp ("(^ [a-f0-9] {} $) | (^ [A-F0-9] {} $ )"); <br/> if(reghex.exe C (value )! = NULL) <br/>{< br/> var id = obj. ID; <br/> /(. *) _ (/d) $ /. test (ID); <br/> var Index = Regexp. $2; <br/> mac_id = Regexp. $1; <br/> If (value. length> 1) <br/>{< br/> If (parseint (INDEX) <6) <br/>{< br/> id = ID. replace (/d) $/, parseint (INDEX) + 1); <br/> setTimeout ("document. getelementbyid ('"+ ID + "'). focus (); "+" document. getelementbyid ('"+ ID + "'). select (); ", 200); <br/>}< br/> setTimeout (" macbox. all ['"+ mac_id +"']. onchang E () ", 0); <br/> return true; <br/>}< br/> else <br/>{< br/> If (EVT. preventdefault) <br/> EVT. preventdefault (); <br/> EVT. returnvalue = false; <br/> return false; <br/>}< br/> else {<br/> If (EVT. preventdefault) <br/> EVT. preventdefault (); <br/> EVT. returnvalue = false; <br/>}< br/>}, <br/> keydown: function (OBJ, EVT) {<br/> var key = EVT. charcode | EVT. keycode; <br/> var Pos = macbox. EVT. getselection (OBJ); <br/> VaR Value = obj. value; <br/> var c = string. fromcharcode (key); <br/> var id = obj. ID; <br/>/^ (. *) _ (/d) $ /. test (ID); <br/> var Index = Regexp. $2; <br/> var mac_id = Regexp. $1; <br/> var reghexupcase = new Regexp ("(^ [A-F0-9] {1, 2} $)"); <br/> var isupcase; // by default, the number is in uppercase <br/> if(reghexupcase.exe C (value )! = NULL) <br/> isupcase = true; <br/> else <br/> isupcase = false; <br/> switch (key) <br/>{< br/> case 13: // press ENTER <br/> macbox. all [mac_id]. onenterkey (); <br/> break; <br/> Case 110 ://. keypad <br/> case 190 ://. primary keyboard <br/> If (index <6) <br/>{< br/> id = ID. replace (/d) $/, parseint (INDEX) + 1); <br/> document. getelementbyid (ID ). focus (); <br/> document. getelementbyid (ID ). select (); <br/>}< br/> break; <br/> case 38: // up self-added <br/> // Value =! Isnan (parseint (value ))? Parseint (value): ""; <br/> If (value = "") <br/> value = 0; <br/> If (parseint (value, 16) <parseint ("FF", 16) <br/>{< br/> If (isupcase) {<br/> obj. value = (parseint (value, 16) + 1 ). tostring (16 ). touppercase (); <br/>}else {<br/> obj. value = (parseint (value, 16) + 1 ). tostring (16); <br/>}< br/> else <br/> obj. value = 0; <br/> break; <br/> case 40: // down auto-minus <br/> // value =! Isnan (parseint (value ))? Parseint (value): ""; <br/> If (value = "") <br/> value = "FF"; <br/> If (parseint (value, 16)> 0) <br/>{< br/> If (isupcase) {<br/> obj. value = (parseint (value, 16)-1 ). tostring (16 ). touppercase (); <br/>}else {<br/> obj. value = (parseint (value, 16)-1 ). tostring (16); <br/>}< br/>}; <br/> break; <br/> case 8: // backspace <br/> If (POS. start> 0) <br/> return; <br/> case 37: // left <br/> If (POS. end = 0 & index> 1) <br/>{< br/> id = ID. repl ACE (/d) $/, parseint (INDEX)-1); <br/> document. getelementbyid (ID ). focus (); <br/> document. getelementbyid (ID ). select (); <br/>}< br/> break; <br/> case 39: // right <br/> If (POS. start = value. length & index <6) <br/>{< br/> id = ID. replace (/d) $/, parseint (INDEX) + 1); <br/> document. getelementbyid (ID ). focus (); <br/> document. getelementbyid (ID ). select (); <br/>}< br/> break; <br/>}< br/>}, <br/> // obtain the selected area location <br/> getse Lection: function (oinput) {<br/> var T = This; <br/> If (oinput. createTextRange) {<br/> var S = document. selection. createRange (). duplicate (); <br/> S. movestart ("character",-oinput. value. length); <br/> var p1 = S. text. length; <br/> var S = document. selection. createRange (). duplicate (); <br/> S. moveend ("character", oinput. value. length); <br/> var P2 = oinput. value. lastindexof (S. text); <br/> If (S. TEXT = "") P2 = oinput. value. l Ength; <br/> return {start: P2, end: P1 };< br/>}else {<br/> return {start: oinput. selectionstart, end: oinput. selectionend };< br/>}< br/> // --> </MCE: SCRIPT> <br/> <MCE: style type = "text/CSS"> <! -- <Br/>/* IP input box */<br/>. macinput {<br/> border: 1px solid # CCC; <br/> font-size: 12px; <br/>}< br/>. macinput input {<br/> border: 0px solid # CCC; <br/> font-size: 12px; <br/> Height: 16px; <br/> width: 24px; <br/> Background: transparent; <br/> text-align: center; <br/>}< br/> --> </MCE: style> <style type = "text/CSS" mce_bogus = "1">/* IP input box */<br/>. macinput {<br/> border: 1px solid # CCC; <br/> font-size: 12px; <br/>}< br/ >. Macinput input {<br/> border: 0px solid # CCC; <br/> font-size: 12px; <br/> Height: 16px; <br/> width: 24px; <br/> Background: transparent; <br/> text-align: center; <br/>}</style> <br/> </pead> <br/> <body> <br/> <span id = "span1"> </span> <br/> <input type = "button" value = "mac1.getvalue" onclick = "alert (mac1.getvalue ()) "/> <br/> <p> <br/> <span id =" span2 "> </span> <br/> <MCE: script Type = "text/JavaScript"> <! -- <Br/> var mac1 = new macbox ("mac1"); <br/> document. getelementbyid ("span1 "). innerhtml = mac1; <br/> mac1.focus (1); // activate the first part of the input box <br/> mac1.onenterkey = function () {<br/> alert ("mac1 enterkey "); <br/>}< br/> // each successful input of a word triggers an onchange event. <br/> mac1.onchange = function () {<br/> window. status = "mac1 new Mac:" + (this. getvalue (); <br/>}< br/> mac1.setvalue ("EF: 00: 34: 3A: 11: B2 "); <br/> var mac2 = new macbox ("mac2", "span2"); <br/> // --> </MCE: SCRIPT> <br/> </body> <br/> </ptml> <br/>

There are many js ip controls on the Internet. I chose this one because it is very convenient to use. The value and value setting functions are good, as well as the auto-addition and auto-reduction functions. Of course, the browser compatibility is also good. The modified MAC control also inherits these advantages. Due to the hasty modification time, there may be some improper information, and I hope you will give more valuable comments, THX ~

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.