วันพฤหัสบดีที่ 3 ธันวาคม พ.ศ. 2558

ชนิดข้อมูลใน MySQL (Datatype)



VARCHAR : สำหรับเก็บข้อมูลประเภทตัวอักษร ทุกครั้งที่เลือกชนิดของฟิลด์เป็นประเภทนี้ จะต้องมี การกำหนดความยาวของข้อมูลลงไปด้วย ซึ่งสามารถกำหนดค่าได้ตั้งแต่ 1 - 255 ฟิลด์ชนิดนี้ เหมาะ


สำหรับการเก็บข้อมูลสั้นๆ เช่น ชื่อ นามสกุล หรือหัวข้อต่างๆ เป็นต้น... ในส่วนฟิลด์ประเภทนี้ จะ สามารถเลือก "แอตทริบิวต์" เป็น BINARY ได้ โดยปกติแล้วการจัดเรียงข้อมูลเวลาสืบค้น (query) สำหรับ VARCHAR จะเป็นแบบ case-sensitive (ตัวอักษรใหญ่ และเล็กมีความหมายแตกต่างกัน) แต่ หากระบุ "แอตทริบิวต์" เป็น BINARY ปุ๊บ การสืบค้นจะไม่คำนึงตัวอักษรว่าจะเป็นตัวใหญ่ หรือตัวเล็ก






CHAR : สำหรับเก็บข้อมูลประเภทตัวอักษร แบบที่ถูกจำกัดความกว้างเอาไว้คือ 255 ตัวอักษร ไม่ สามารถปรับเปลี่ยนได้เหมือนกับ VARCHAR หากทำการสืบค้นโดยเรียงตามลำดับ ก็จะเรียงข้อมูล


แบบ case-sensitive เว้นแต่จะกำหนดแอตทริบิวต์เป็น BINARY ที่จะทำให้การเรียงข้อมูลเป็นแบบ non case-sensitive เช่นเดียวกับ VARCHAR






TINYTEXT : ในกรณีที่ข้อความยาวๆ หรือต้องการที่จะค้นหาข้อความ โดยอาศัยฟีเจอร์ FULL TEXT SEARCH ของ MySQL เราอาจจะเลือกที่จะไม่เก็บข้อมูลลงในฟิลด์ประเภท VARCHAR ที่มีข้อจำกัด


แค่ 256 ตัวอักษร แต่เราจะเก็บลงฟิลด์ประเภท TEXT แทน โดย TINYTEXT นี้ จะสามารถเก็บข้อมูล ได้ 256 ตัวอักษร ซึ่งมองเผินๆ ก็ไม่ต่างกับเก็บลงฟิลด์ประเภท CHAR หรือ VARCHAR(255) เลย แต่


จริงๆ มันต่างกันตรงที่ มันทำFULL TEXT SEARCH ได้






TEXT : สำหรับเก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่สามารถเก็บได้มากขึ้น โดย สูงสุดคือ 65,535 ตัวอักษร หรือ 64KB เหมาะสำหรับเก็บข้อมูลพวกเนื้อหาต่างๆ ที่ยาวๆ






MEDIUMTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 16,777,215 ตัวอักษร






LONGTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 4,294,967,295 ตัวอักษร






TINYINT : สำหรับเก็บข้อมูลชนิดตัวเลขที่มีขนาด 8 บิต ข้อมูลประเภทนี้เราสามารถกำหนดเพิ่มเติม ในส่วนของ "แอตทริบิวต์" ได้ว่าจะเลือกเป็น UNSIGNED หรือ UNSIGNED ZEROFILL โดยจะมี ความแตกต่างดังนี้


- UNSIGNED : จะหมายถึงเก็บค่าตัวเลขแบบไม่มีเครื่องหมาย แบบนี้จะทำใหสามารถเก็บค่าได้ ตั้งแต่ 0 - 255


- UNSIGNED ZEROFILL : เหมือนข้างต้น แต่ว่าหากข้อมูลที่กรอกเข้ามาไม่ครบตามจำนวน หลักที่เรากำหนด ตัว MySQL จะทำการเติม 0 ให้ครบหลักเอง เช่น ถ้ากำหนดให้ใส่ได้ 3 หลัก แล้วทำการเก็บข้อมูล 25 เข้าไป เวลาที่สืบค้นดู เราจะได้ค่าออกมาเป็น 025 หากไม่เลือก "แอ ตทริบิวต์" สิ่งที่เราจะได้ก็คือ SIGNED นั่นก็คือต้องเสียบิตนึงไปเก็บเครื่องหมาย บวก/ลบ ทำ ให้สามารถเก็บข้อมูลได้อยู่ในช่วง -128 ถึง 127 เท่านั้น






SMALLINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 16 บิต จึงสามารถเก็บค่าได้ตั้งแต่ -32768 ถึง 32767 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 65535 (ในกรณี UNSIGNED หรือไม่คิดเครื่องหมาย)


ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT






MEDIUMINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 24 บิต นั่นก็หมายความว่าสามารถเก็บ ข้อมูลตัวเลขได้ตั้งแต่ -8388608 ไปจนถึง 8388607 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 16777215


(ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT






INT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 32 บิต หรือสามารถเก็บข้อมูลได้ตั้งแต่ -2147483648 ไปจนถึง 2147483647 ครับ (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 4294967295 (ในกรณีที่เป็น


UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT






BIGINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 64 บิต สามารถเก็บข้อมูลได้ตั้งแต่ - 9223372036854775808 ไปจนถึง 9223372036854775807 เลยทีเดียว (แบบคิดเครื่องหมาย) หรือ 0 ถึง 18446744073709551615 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT






FLOAT[(M,D)] : ที่กล่าวถึงไปทั้งหมด ในตระกูล INT นั้นจะเป็นเลขจำนวนเต็ม หากเราบันทึกข้อมูล ที่มีเศษทศนิยม มันจะถูกปัดทันที ดังนั้นหากต้องการจะเก็บค่าที่เป็นเลขทศนิยม ต้องเลือกชนิดขอฟิลด์ เป็น FLOAT โดยจะเก็บข้อมูลแบบ 32 บิต คือมีค่าตั้งแต่ -3.402823466E+38 ไปจนถึง -1.175494351E- 38, 0 และ 1.175494351E-38 ถึง 3.402823466E+38






DOUBLE[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่มีขนาดเป็น 64 บิต สามารถเก็บได้ตั้งแต่ -1.7976931348623157E+308 ถึง -2.2250738585072014E-308, 0 และ


2.2250738585072014E-308 ถึง 1.7976931348623157E+308






DECIMAL[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่ใช้กับข้อมูลที่ ต้องการความละเอียดและถูกต้องของข้อมูลสูง ข้อสังเกต เกี่ยวกับข้อมูลประเภท FLOAT, DOUBLE และ DECIMAL ก็คือ เวลากำหนดความ ยาวของข้อมูลในฟิลด์ จะถูกกำหนดอยู่ในรูปแบบ (M,D) ซึ่งหมายความว่า ต้องมีการระบุว่า จะให้มี ตัวเลขส่วนที่เป็นจำนวนเต็มกี่หลัก และมีเลขทศนิยมกี่หลัก เช่น ถ้าเรากำหนดว่า FLOAT(5,2) จะ หมายความว่า เราจะเก็บข้อมูลเป็นตัวเลขจำนวนเต็ม 5 หลัก และทศนิยม 2 หลัก ดังนั้นหากทำการใส่ ข้อมูล 12345.6789 เข้าไป สิ่งที่จะเข้าไปอยู่ในข้อมูลจริงๆ ก็คือ 12345.68 (ปัดเศษให้มีจำนวนหลัก ตามที่กำหนดไว้)






DATE : สำหรับเก็บข้อมูลประเภทวันที่ โดยเก็บได้จาก 1 มกราคม ค.ศ. 1000 ถึง 31 ธันวาคม ค.ศ. 9999 โดยจะแสดงผลในรูปแบบ YYYY-MM-DD






DATETIME : สำหรับเก็บข้อมูลประเภทวันที่ และเวลา โดยจะเก็บได้ตั้งแต่ 1 มกราคม ค.ศ. 1000 เวลา 00:00:00 ไปจนถึง 31 ธันวาคม ค.ศ. 9999 เวลา 23:59:59 โดยรูปแบบการแสดงผล เวลาที่ทำการสืบค้น


(query) ออกมา จะเป็น YYYY-MM-DD HH:MM:SS






TIMESTAMP[(M)] : สำหรับเก็บข้อมูลประเภทวันที่ และเวลาเช่นกัน แต่จะเก็บในรูปแบบของ YYYYMMDDHHMMSS หรือ YMMDDHHMMSS หรือ YYYYMMDD หรือ YYMMDD แล้วแต่ ว่าจะระบุค่า M เป็น 14, 12, 8 หรือ 6 ตามลำดับ สามารถเก็บได้ตั้งแต่วันที่ 1 มกราคม ค.ศ. 1000 ไป จนถึงประมาณปี ค.ศ. 2037






TIME : สำหรับเก็บข้อมูลประเภทเวลา มีค่าได้ตั้งแต่ -838:59:59 ไปจนถึง 838:59:59 โดยจะแสดงผล ออกมาในรูปแบบ HH:MM:SS YEAR[(2/4)] : สำหรับเก็บข้อมูลประเภทปี ในรูปแบบ YYYY หรือ YY แล้วแต่ว่าจะเลือก 2 หรือ 4 (หากไม่ระบุ จะถือว่าเป็น 4 หลัก) โดยหากเลือกเป็น 4 หลัก จะเก็บค่าได้ตั้งแต่ ค.ศ. 1901 ถึง 2155 แต่ หากเป็น 2 หลัก จะเก็บตั้งแต่ ค.ศ. 1970 ถึง 2069 ข้อสังเกต ค่าที่เก็บในข้อมูลประเภท TIMESTAMP และ YEAR นั้นจะมีความสามารถพอๆ กับ การเก็บข้อมูลวันเดือนปี และเวลา ด้วยฟิลด์ชนิด VARCHAR แต่ต่างกันตรงที่ จะใช้เนื้อที่เก็บข้อมูล น้อยกว่า... ทว่า ฟิลด์ประเภท TIMESTAMP นั้นจะมีข้อจำกัดในเรื่องของเวลาที่สามารถเก็บได้ คือ จะต้องอยู่ในระหว่าง 1 มกราคม ค.ศ. 1000 ไปจนถึงแถวๆ ค.ศ. 2037 อย่างที่บอก แต่หากเก็บเป็น VARCHAR นั้นจะไม่ติดข้อจำกัดนี้ ฟิลด์ชนิด YEAR ก็เช่นกันครับ... ใช้เนื้อที่แค่ 1 ไบต์เท่านั้นในการ เก็บข้อมูล แต่ข้อจำกัดจะอยู่ที่ ปี ค.ศ. 1901 ถึง 2155 เท่านั้น (หรือ ค.ศ. 1970 ถึง 2069 ในกรณี 2 หลัก) แต่หากเก็บเป็น VARCHAR จะได้ตั้งแต่ 0000 ถึง 9999 เลย อันนี้เลยอยู่ที่ความจำเป็นมากกว่าครับ (แต่ ด้วยความที่ว่า ปัจจุบันฮาร์ดดิสก์ราคาถูกมากๆ ผมเลยไม่ติดใจอะไรที่จะใช้ VARCHAR แทน เพื่อ ความสบายใจ อิอิ เพราะสมมติว่ากินเนื้อที่ต่างกัน 3 ไบต์ ต่อ 1 ระเบียน มีข้อมูล 4 ล้านระเบียน ก็เพิ่ง ต่างกัน 12 ล้านไบต์ หรือ 12 เมกะไบต์เท่านั้นเอง ซึ่งหากเทียบกับปริมาณข้อมูลทั้งหมดของข้อมูล 4 ล้านระเบียน ผมว่ามันต้องมีอย่างน้อยเป็นกิกะไบต์ ดังนั้นความแตกต่างที่ไม่กี่เมกะไบต์จึงไม่มากมาย)






TINYBLOB : สำหรับเก็บข้อมูลประเภทไบนารี ได้แก่ ไฟล์ข้อมูลต่างๆ, ไฟล์รูปภาพ, ไฟล์มัลติมีเดีย เป็นต้น คือไฟล์อะไรก็ตามที่อัพโหลดผ่านฟอร์มอัพโหลดไฟล์ในภาษา HTML โดย TINYBLOB นั้น


จะมีเนื้อที่ให้เก็บข้อมูลได้ 256 ไบต์






BLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่สามารถเก็บข้อมูลได้ 64KB






MEDIUMBLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 16MB






LONGBLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 4GB ข้อสังเกต ข้อมูลประเภท BLOB นั้น แม้จะมีประโยชน์ในเรื่องของการเก็บข้อมูลประเภท BINARY ให้อยู่กับตัวฐานข้อมูล ทำให้สะดวกเวลาสืบค้นก็ตาม แต่มันก็ทำให้ฐานข้อมูลมีขนาดใหญ่ เกินความจำเป็นด้วย ทำให้เกิดความไม่สะดวกในการสำรองฐานข้อมูลในกรณีที่ มีข้อมูลอัพโหลดไป เก็บมากๆ โดยปกติแล้ว จะใช้วิธีการอัพโหลดไปเก็บไว้ในโฟลเดอร์ แล้วเก็บลิงก์ไปยังไฟล์เหล่านั้น เป็นฟิลด์ชนิด VARCHAR มากกว่า






SET : สำหรับเก็บข้อมูลที่เป็นกลุ่มของข้อมูลที่ยอมให้เลือกได้ 1 ค่าหรือหลายๆ ค่า ซึ่งสามารถกำหนด ได้ถึง 64 ค่า







ที่มา http://www.webub.com/%E0%B8%8A%E0%B8%99%E0%B8%B4%E0%B8%94%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5%E0%B9%83%E0%B8%99_MySQL__Datatype_-448-16.html


เวลาที่ค้นหา 14 : 17

วันพฤหัสบดีที่ 12 พฤศจิกายน พ.ศ. 2558

ความรู้เกี่ยวกับ IP Address


สวัสดีครับ ถึงคิวเรื่องของ Networks กันแล้ว คุณอาจจะมีข้อสงสัยเกี่ยวกับเรื่องการกำหนด IP Address ของเครื่องคอมพิวเตอร์ กรณีที่คุณใช้ Protocol TCP/IP ว่าการกำหนด IP Address กำหนดกันอย่างไร และมีเครื่องมือตรวจสอบหรือไม่ว่า IP Address เครื่องคอมพิวเตอร์เครื่องสามารถรู้จักกัน





ปกติมาตรฐานเรื่อง IP Address มีอยู่ 5 ระดับ


1. Classes A


2. Classes B


3. Classes C


4. Classes D


5. Classes E





โดยที่เรารู้ ทั่วไป 3 ระดับ คือ Classes A , Classes B , Classes C ส่วนระดับ 4 และ 5 ไม่กล่าวในที่นี้





ลักษณะของ IP number จะประกอบด้วยตัวเลขทั้งหมด 4 ชุด แต่ละชุด จะมีค่าระหว่าง 0- 255 เป็นเลขฐาน 2 จำนวน 8 หลัก รวมตัวเลขทั้ง 4 ชุด คือ 32 หลัก







31

23

15

7

0







1100001


11100001


1000001


10011000

----> เลขฐาน 2



193


225


129


152

----> เลขฐาน 10









โครงสร้างของ IP Address ตามรูปข้างล่าง







31


0





Network Number


Host Number











IP Address Classes A มีข้อกำหนดคือ Classes A Networks Number มี 8 บิต โดย บิตที่ 31 เป็น 0 เสมอ สำหรับ Host Number มี 24 บิต ตามรูปข้างล่าง









31

23

15



7


0








Networks Number


Host Number



0




0000001


00000000


00000000


00000000



01111111


11111111


11111111


11111111













1.






0.0.0






127.






255.255.255








Classes A จะมี Host Number ได้เท่ากับ 2 ยกกำลัง 24 คือ 16,777,216 Number โดย IP Address 0.0.0.0 กับ 127.0.0.0 ถูกสงวนไว้ใช้ในกรณีพิเศษ Classes A จะมี Subnet Mask คือ 255 .0 .0 .0





IP Address Classes B มีข้อกำหนดคือ Classes B Networks Number มี 16 บิต โดย บิตที่ 31 เป็น 1 บิตที่ 30 เป็น 0 เสมอ สำหรับ Host Number มี 16 บิต ตามรูปข้างล่าง









31

23

15



7


0








Networks Number


Host Number



1


0


000000


00000000


00000000


00000000



10 111111


11111111


11111111


11111111













128.0






0 . 0






191.255






255 .255








Classes B จะมี Host Number ได้เท่ากับ 2 ยกกำลัง 16 คือ 65536 Number Classes B จะมี Subnet Mask คือ 255 .255 .0 .0





IP Address Classes C มีข้อกำหนดคือ Classes C Networks Number มี 24 บิต โดย บิตที่ 31 เป็น 1 บิตที่ 30 เป็น 1 บิตที่ 29 เป็น 0 เสมอ สำหรับ Host Number มี 8 บิต ตามรูปข้างล่าง






31

23

15



7


0








Networks Number


Host Number



1


1


0


00000


00000000


00000000


00000000



110 11111


11111111


11111111


11111111













1.






0.0.0






127.






255.255.255








Classes C จะมี Host Number ได้เท่ากับ 2 ยกกำลัง 8 คือ 256 Number Classes C จะมี Subnet Mask คือ 255 .255 .255 .0





จากรายละเอียดที่กล่าวมาทุกเท่ารู้เรื่องเกี่ยวกับ IP Address พอสมควรแต่ถ้าเราเจอโจทย์ว่า ผมมีคอมพิวเตอร์ 2 เครื่องโดยมีค่า IP address ตามรูปล่างข้าง












จากรูปเราสามารถนำค่า IP Address มาแทนค่าในสูตร











สูตรการคำนวณ




Network ID + Subnet ID = IP Address ( and ) Subnet Mask




HOST = IP Address And ( not ( Subnet Mask ) )







ก่อนที่เราจะแทนค่าตัวเลขในสูตรเราจะต้องแปลงเลข IP Address จากเลขฐาน 10 เป็นเลขฐาน 2 โดยนำกำลังของเลขฐานสองที่เป็น 1 มาบวกกันจะได้เลขฐานสิบ จากตัวอย่างข้างล่าง










128


64


32


16


8


4


2


1


<---- กำลังเลขฐาน 2


เลขฐาน 2 ---->


1


0


1


0


0


0


0


0








เลขฐาน 2 ที่เป็น 1 มี 2ค่าคือ 128 กับ 32 นำมาบวกจะได้ 160 เป็นเลขฐานสิบ







IP =160.223.1.8 เลขฐานสิบ




10100000



.




11011111



.




00000001



.




00000100



Subnet Mask = 255.255.0.0 เลขฐานสิบ




111111111



.




111111111



.




00000000



.




00000000











Network ID_ Sunnet ID =






10100000 11011111 00000001 00000100





AND




11111111 11111111 00000000 00000000









10100000 11011111 00000000 00000000 ----> ผลลัพธ์














160 . 223 .



---->




Network Number




หมายเหตุในการ AND ของเลขฐานสอง ถ้ามีเลข 0 ผลลัพธ์จะได้ 0 , ต้องเป็นเลข 1 ทั้ง 2 เลขผลลัพธ์จะได้ 1









IP = 160.223.200.3 เลขฐานสิบ




10100000



.




11011111



.




11001000



.




00000011



Subnet Mask 255.255.0.0 เลขฐานสิบ




111111111



.




111111111



.




00000000



.




00000000











Network ID_ Sunnet ID =






10100000 11011111 11001000 00000011





AND




11111111 11111111 00000000 00000000









10100000 11011111 00000000 00000000 ----> ผลลัพธ์














160 . 223 .



---->




Network Number











จากการคำนวณทราบว่าค่า Networks Number




160 . 223 .


อยู่ใน Networks เดียวกัน แสดงว่า IP =160.223.1.8 Subnet mask = 255.255.0.0 กับ


IP = 160.223.200.3 Subnet mask = 255.255.0.0 รู้จักกัน




ขอบพระคุณทุกท่านที่เข้ามาอ่านบทความ


ปล. ช่วยกันโหวตด้วยนะครับ [ WoodyDesign ]

















ขอขอบพระคุณ ที่มาของข้อมูล :: http://gg.gg/3w8hm

ค้นหา ณ วันที่ 13/11/2558 เวลา 14.08

ปูพื้นฐานความรู้เรื่อง IP Address



ปูพื้นฐานเรื่อง IP Address กัน (ในบทความนี้จะอ้างอิงถึง IPv4 เท่านั้นนะครับ)

IP Address คือ หมายเลขที่ใช้ระบุตำแหน่งของเครื่องคอมพิวเตอร์หรืออุปกรณ์บนโลก Internet (ลองนึกถึงภาพเบอร์โทรศัพท์ก็ได้ครับ)

ซึ่งมีทั้งหมด 4294967296 หมายเลข (สี่พันล้านเศษ) หรือเท่ากับ 2 ยกกำลัง 32 คือสามารถเขียนเป็นเลขฐานสอง ได้จำนวน 32 หลัก หรือ 32bit

เช่น
เลข 0 เขียนในรูปเลขฐานสองได้เป็น 00000000.00000000.00000000.00000000 หรือเขียนในรูปเลขฐานสิบ ได้เป็น 0.0.0.0
เลข 1 เขียนในรูปเลขฐานสองได้เป็น 00000000.00000000.00000000.00000001 หรือเขียนในรูปเลขฐานสิบ ได้เป็น 0.0.0.1
เลข 2 เขียนในรูปเลขฐานสองได้เป็น 00000000.00000000.00000000.00000010 หรือเขียนในรูปเลขฐานสิบ ได้เป็น 0.0.0.2
เลข 256 เขียนในรูปเลขฐานสองได้เป็น 00000000.00000000.00000001.00000000 หรือเขียนในรูปเลขฐานสิบ ได้เป็น 0.0.1.0
เลข 4294967295 รูปเลขฐานสอง 11111111.11111111.11111111.11111111 หรือเลขฐานสิบ 255.255.255.255

การใช้ . คั่นเพื่อให้ง่ายต่อการสังเกตุและการอ่าน โดยจะคั่นทุก 8 bit ได้ออกมาเป็น 4 ชุดตัวเลข

Public IP / Private IP หรือที่เรียกกันว่า IP จริง / IP ปลอม (เปรียบเสมือนเบอร์ภายใน และเบอร์ภายนอก เป็นต้น)

เนื่องจากว่า จำนวน IP Address มีจำนวนจำกัด ไม่สามารถที่จะใช้ Public IP สำหรับเครื่องคอมพิวเตอร์ทุกเครื่องได้ จึงได้มีการสร้าง Private IP เพื่อใช้งานสำหรับ Local Net

Public IP หมายถึง หมายเลข IP Address ที่สามารถนำมาใช้ติดต่อสื่อสารบนโลก Internet ได้

เปรียบเทียบกับโทรศัพท์ได้ว่า เบอร์โทรที่สามารถโทรหากันได้ทั่วโลก ไม่ว่าจะอยู่ส่วนไหนของโลกก็ตาม

Private IP หมายถึง หมายเลข IP Address ที่ไม่สามารถนำมาใช้ติดต่อสื่อสารบนโลก Internet ได้ สามารถใช้ติดต่อสื่อสารได้เฉพาะภายในกลุ่มเครื่องข่าย หรือ Local Net เท่านั้น

เปรียบเทียบกับโทรศัพท์ได้ว่าเป็นเหมือน เบอร์โทรศัพท์ภายใน ซึ่งสามารถใช้ติดต่อกับ เบอร์ภายในเท่านั้น ไม่สามารถโทรออกภายนอกได้
หากต้องการโทรออกจะต้องใช้เทคนิค ในการไป map เบอร์ภายนอก เพื่อที่จะให้โทรออกได้ หรือที่เรียกว่าการ NAT ซึ่งจะอธิบายในบทต่อไป

Private IP ประกอบด้วย IP จำนวน 3 ชุดด้วยกันคือ

ชุดแรกคือ 10.0.0.0 - 10.255.255.255 มีจำนวน 16777216 หมายเลข (16 ล้านเศษ)
ชุดที่สองคือ 172.16.0.0 - 172.31.255.255 มีจำนวน 1048576 หมายเลข (1 ล้านเศษ)
ชุดที่สามคือ 192.168.0.0 - 192.168.255.255 มีจำนวน 65536 หมายเลข (6 หมื่นเศษ)

การเลือกใช้ในแต่ละกลุ่ม ก็ขึ้นกับความเหมาะสมของขนาดเครือข่าย

Subnet Mask / Netmask
(สองคำนี้ก็มีความหมายเหมือนกัน เพียงแต่ว่า ใน Windows จะเรียกว่า Subnet Mask แต่ใน Linux จะเรียกว่า Netmask)

SubNet Mask หรือ Netmask เป็นตัวเลขที่ใช้ระบุขนาดของ Network ซึ่งจะเขียนอยู่ในรูปแบบเดียวกับเลข ip หรือในรูปแบบของ / แล้วตามด้วยเลข 0-32

ยกตัวอย่างเช่น IP Address : 192.168.1.1 Subnet Mask 255.255.255.0 หรือ 61.19.25.66/29 เป็นต้น

SubNet Mask หรือ Netmask จะเป็นตัวระบุขนาดของ Network ของ IP Address นั้น โดยสามารถดูได้จาก รูปใน Chart





จาก Chart สามารถอธิบายได้ว่า

/32 หรือ Subnet Mask 255.255.255.255 มี Host Address ขนาด 0bit หรือเท่ากับจำนวน IP Address 1 หมายเลข
/31 หรือ Subnet Mask 255.255.255.254 มี Host Address ขนาด 1bit หรือเท่ากับจำนวน IP Address 2 หมายเลข
/30 หรือ Subnet Mask 255.255.255.252 มี Host Address ขนาด 2bit หรือเท่ากับจำนวน IP Address 4 หมายเลข
...
/24 หรือ Subnet Mask 255.255.255.0 มี Host Address ขนาด 8bit หรือเท่ากับจำนวน IP Address 256 หมายเลข
...
/16 หรือ Subnet Mask 255.255.0.0 มี Host Address ขนาด 16bit หรือเท่ากับจำนวน IP Address 65536 หมายเลข
...
/8 หรือ Subnet Mask 255.0.0.0 มี Host Address ขนาด 24bit หรือเท่ากับจำนวน IP Address 16777216 หมายเลข

เป็นต้น

ดังนั้น เราสามารถเขียนระบุ Private IP ได้ว่า มี 3 ชุดด้วยกันคือ

10.0.0.0/8
172.16.0.0/12
192.168.0.0/16

เป็นต้น

Gateway หมายถึง หมายเลข IP Address ในเครือข่าย ที่มีการเชื่อมต่อกับ Network ภายนอก

DNS หมายถึง หมายเลข IP Address ที่ให้บริการ Domain Name Service หรือบริการ เปลี่ยนชื่อ เป็นหมายเลข IP Address เช่น แปลงจาก www.hadyaiinternet.com เป็น 61.19.250.217 เป็นต้น





ขอขอบพระคุณ ที่มาของข้อมูล :: http://www.hadyaiinternet.com/index.php?topic=1877.0
ค้นหา ณ วันที่ 13/11/2558 เวลา 14.05