๋ฐ˜์‘ํ˜•

๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ IP ์ฃผ์†Œ์™€ ๊ณ ๊ธ‰ ์†์„ฑ

๋จธ์‹  ๋น„์ „์—์„œ GigE ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋„คํŠธ์›Œํฌ ์„ค์ •์€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ์นด๋ฉ”๋ผ ์—ฐ๊ฒฐ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ณ ์ • IP ์ฃผ์†Œ ์„ค์ •์€ ๋ฌผ๋ก ์ด๊ณ , ์›ํ™œํ•œ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์œ„ํ•œ ์†์„ฑ ์„ค์ • ๋ฐ ํ•„ํ„ฐ ๋“œ๋ผ์ด๋ฒ„(Filter Driver) ์„ค์น˜๋Š” ๊ผญ ํ•„์š”ํ•˜์ฃ .

์„ค์ •์ด ํ•„์š”ํ•œ ๋„คํŠธ์›Œํฌ ์†์„ฑ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์˜ ๋„ค ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ ๋ณด ํŒจํ‚ท(Jumbo Packet)
  • ์ˆ˜์‹  ๋ฒ„ํผ(Receive Buffers)
  • ์ „์†ก ๋ฒ„ํผ(Transmit Buffers)
  • ์ธํ„ฐ๋ŸฝํŠธ ์กฐ์ ˆ ์†๋„(Interrupt Moderation Rate)

๊ฐ ๋„คํŠธ์›Œํฌ ์†์„ฑ์˜ ์˜๋ฏธ๋Š” ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

[GigE Interface] GigE๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„ Part 2.

 

[GigE Interface] GigE๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„ Part 2.

GigE๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„ Part 2. ๋ณธ๋ฌธ ๊ธ€์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•ด์ฃผ์„ธ์š”. Gigabit Ethernet(GigE) ์ธํ„ฐํŽ˜์ด์Šค GigE ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•˜๋“œ์›จ์–ด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์†Œํ”„ํŠธ์›จ์–ด์—์„œ๋„ ์ค€๋น„๋ฅผ ํ•ด์•ผ

luckygg.tistory.com

๊ทธ๋ž˜์„œ IP ์ฃผ์†Œ๋ฅผ ๋น„๋กฏํ•˜์—ฌ, ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์†์„ฑ์„ ์ฝ”๋“œ์—์„œ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ณธ๋ฌธ์—์„œ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ๋„คํŠธ์›Œํฌ IP ์ฃผ์†Œ์™€ ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ ์–ป๋Š” ๋ฐฉ๋ฒ•

์‹œ์Šคํ…œ์— ์กด์žฌํ•˜๋Š” ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ์˜ ๋ชฉ๋ก๊ณผ IP ์ฃผ์†Œ ๊ทธ๋ฆฌ๊ณ  ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ๋ฅผ ์–ป๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. System.Net.NetworkInformation ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ์–ด๋Œ‘ํ„ฐ์˜ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.NetworkInformation; //NetworkInformation ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ถ”๊ฐ€

namespace ExamNetwork
{
    class Program
    {
        static void Main(string[] args)
        {
            //๋ชจ๋“  ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์–ป๊ธฐ
            foreach (var network in NetworkInterface.GetAllNetworkInterfaces())
            {
                //IPv4๋ฅผ ์ง€์›ํ•˜๋Š” ๋„คํŠธ์›Œํฌ ํ™•์ธ
                if (network.Supports(NetworkInterfaceComponent.IPv4) == true)
                {
                    //์ด๋”๋„ท ํƒ€์ž… ํ™•์ธ
                    if (network.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
                    {
                        //IP ์†์„ฑ ์–ป๊ธฐ
                        IPInterfaceProperties properties = network.GetIPProperties();
                        //Unicast ์ฃผ์†Œ๊ฐ€ ํ• ๋‹น๋œ ip ์–ป๊ธฐ
                        foreach (UnicastIPAddressInformation uniIp in network.GetIPProperties().UnicastAddresses)
                        {
                            if (uniIp.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                            {
                                string ipAddress = uniIp.Address.ToString();
                                string subNetMask = uniIp.IPv4Mask.ToString();
                                Console.WriteLine("======================================");
                                Console.WriteLine($"Name: {network.Name}");
                                Console.WriteLine($"Description: {network.Description}");
                                Console.WriteLine($"Type: {network.NetworkInterfaceType}");
                                Console.WriteLine($"IP: {ipAddress}");
                                Console.WriteLine($"Subnetmask: {subNetMask}");
                            }
                        }
                    }
                }
            }

            Console.ReadLine();
        }
    }
}

์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•ด์„œ ๊ทธ๋‹ค์ง€ ์„ค๋ช…ํ•  ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ-์–ด๋Œ‘ํ„ฐ-๊ธฐ๋ณธ-์ •๋ณด๋ฅผ-์ถœ๋ ฅํ•œ-๊ฒฐ๊ณผ
๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ ๊ธฐ๋ณธ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•œ ๊ฒฐ๊ณผ

์œ„ ์˜ˆ์ œ๋Š” ์•„๋ž˜ ์ฒจ๋ถ€๋œ ํŒŒ์ผ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

ExamNetwork_1.zip
0.00MB

2. ๋„คํŠธ์›Œํฌ์˜ IP ์ฃผ์†Œ์™€ ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

์œ„ ๋ฐฉ๋ฒ•์œผ๋กœ IP์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ์„ค์ • ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ IP ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ WMI ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

WMI๋Š” Windows Management Instrumentation์œผ๋กœ, ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ์˜ ์‹œ์Šคํ…œ ์ž์›์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ์˜ IP ์ฃผ์†Œ์™€ ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด, WMI ํด๋ž˜์Šค์ธ Win32_NetworkAdapterConfiguration๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” System.Management ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์—-์–ด์…ˆ๋ธ”๋ฆฌ-์ถ”๊ฐ€ํ•˜๊ธฐ
ํ”„๋กœ์ ํŠธ์— ์–ด์…ˆ๋ธ”๋ฆฌ ์ถ”๊ฐ€ํ•˜๊ธฐ

์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ, ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค ๋˜๋Š” ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ์„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•ด์•ผ ์„ค์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Management; //Managemnet ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ถ”๊ฐ€

namespace ExamNetwork
{
    class Program
    {
        static void Main(string[] args)
        {
            //Win32_NetworkAdapterConfiguration class ์–ป๊ธฐ
            ManagementClass management = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection networks = management.GetInstances();

            foreach (ManagementObject network in networks)
            {
                //๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ์˜ ์ด๋ฆ„๊ณผ ์„ค๋ช… ์–ป๊ธฐ
                var description = network["Description"];
                var caption = network["Caption"];
                
                //EnableStatic Method ์–ป๊ธฐ
                var objStatic = network.GetMethodParameters("EnableStatic");
                //์ƒˆ๋กœ ์ง€์ •ํ•  IP ์ฃผ์†Œ์™€ ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ ์ง€์ •ํ•˜๊ธฐ
                objStatic["IPAddress"] = new string[] { "192.168.10.1" };
                objStatic["SubnetMask"] = new string[] { "255.255.255.0" };
                //EnableStatic Method์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋„˜๊ฒจ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜ ๋ฐ›๊ธฐ
                var result = (uint)network.InvokeMethod("EnableStatic", objStatic, null)["returnValue"];
                if (result != 0)
                    Console.WriteLine("IP ์„ค์ • ์‹คํŒจ.");
            }

            Console.ReadLine();
        }
    }
}

์„ค์ •์ด ํ•„์š”ํ•œ ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ ์ด๋ฆ„์„ ํ™•์ธํ•œ ํ›„ IP ์ฃผ์†Œ์™€ ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ-์„ค์ •-๊ฒฐ๊ณผ
๋„คํŠธ์›Œํฌ ์„ค์ • ๊ฒฐ๊ณผ

์œ„ ์˜ˆ์ œ๋Š” ์•„๋ž˜ ์ฒจ๋ถ€๋œ ํŒŒ์ผ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

ExamNetwork_2.zip
0.00MB

ํŠนํžˆ, ์ด ๋ถ€๋ถ„์€ ์•„๋ž˜ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

https://docs.microsoft.com/ko-kr/windows/win32/cimwin32prov/win32-networkadapterconfiguration?redirectedfrom=MSDN 

 

Win32_NetworkAdapterConfiguration ํด๋ž˜์Šค - Win32 apps

๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ์˜ ํŠน์„ฑ ๋ฐ ๋™์ž‘์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ํด๋ž˜์Šค์—๋Š” ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ์™€ ๋…๋ฆฝ์ ์ธ TCP/IP ํ”„๋กœํ† ์ฝœ ๊ด€๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” ์ถ”๊ฐ€ ์†์„ฑ ๋ฐ ๋ฉ”์„œ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

docs.microsoft.com

3. ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ ๊ณ ๊ธ‰ ์„ค์ • ๋ณ€๊ฒฝํ•˜๊ธฐ

๋„คํŠธ์›Œํฌ-์–ด๋Œ‘ํ„ฐ-๊ณ ๊ธ‰-์„ค์ •-ํ™”๋ฉด
๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ ๊ณ ๊ธ‰ ์„ค์ • ํ™”๋ฉด

์‚ฌ์‹ค ์ด ๋ถ€๋ถ„์„ ์ฐพ๊ธฐ๊ฐ€ ๊ฐ€์žฅ ๊นŒ๋‹ค๋กœ์› ์Šต๋‹ˆ๋‹ค. ์ ๋ณด ํŒจํ‚ท(MTU), ์ˆ˜์‹  ๋ฒ„ํผ, ์ „์†ก ๋ฒ„ํผ ๋“ฑ๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์€๋ฐ, ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋„์ €ํžˆ ์ฐพ์„ ์ˆ˜ ์—†๋”๊ตฐ์š”. ๊ทธ๋Ÿฐ๋ฐ ์•Œ๊ณ  ๋ณด๋‹ˆ ์•„์ฃผ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ, ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด์ฃ .

๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํŽธ์ง‘๊ธฐ์—์„œ ์•„๋ž˜ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•˜๋ฉด, ์‹œ์Šคํ…œ์— ์กด์žฌํ•˜๋Š” ๋„คํŠธ์›Œํฌ ๋ชฉ๋ก๊ณผ ์„ค์ • ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. Win + R > regedit //๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํŽธ์ง‘๊ธฐ
2. ์‹œ์ž‘ > ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํŽธ์ง‘๊ธฐ ์‹คํ–‰

//๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ ๋ชฉ๋ก ์œ„์น˜
์ปดํ“จํ„ฐ\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}

๋ ˆ์ง€์ŠคํŠธ๋ฆฌ-ํŽธ์ง‘๊ธฐ์—์„œ-๋„คํŠธ์›Œํฌ-์–ด๋Œ‘ํ„ฐ์˜-๊ณ ๊ธ‰-์„ค์ •-ํŽธ์ง‘
๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํŽธ์ง‘๊ธฐ์—์„œ ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ์˜ ๊ณ ๊ธ‰ ์„ค์ • ํŽธ์ง‘

๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ์˜ ์ฃผ์š” ์„ค์ • ์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ ์ด๋ฆ„
Jumbo Packet(์ ๋ณด ํŒจํ‚ท) *JumboPacket
Receive Buffers(์ˆ˜์‹  ๋ฒ„ํผ) *ReceiveBuffers
Transmit Buffers(์ „์†ก ๋ฒ„ํผ) *TransmitBuffers
Interrupt Moderation(์ธํ„ฐ๋ŸฝํŠธ ์กฐ์ ˆ) *InterruptModeration
Interrupt Moderation Rate(์ธํ„ฐ๋ŸฝํŠธ ์กฐ์ ˆ ์†๋„) ITR

์ฆ‰, ์„ค์ •์ด ํ•„์š”ํ•œ ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ฐพ์•„์„œ ํ•ด๋‹น ์œ„์น˜์˜ ํ‚ค(Key) ๊ฐ’(Value)์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„์ฃผ ๊ฐ„๋‹จํ•˜์ฃ ? ์ด ๋ฐฉ๋ฒ•๋„ ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Win32; //Win32 ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ถ”๊ฐ€

namespace ExamNetwork
{
    class Program
    {
        static void Main(string[] args)
        {
            string network_registry = @"SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}";
            //๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์—ด๊ธฐ
            RegistryKey regNetwork = Registry.LocalMachine.OpenSubKey(network_registry, false);

            //ํ•˜์œ„ ํ‚ค ์ด๋ฆ„ ์–ป๊ธฐ
            var adapters = regNetwork.GetSubKeyNames();
            foreach (var adapter in adapters)
            {
                //์–ด๋Œ‘ํ„ฐ์˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์–ป๊ธฐ
                RegistryKey regAdapter = Registry.LocalMachine.OpenSubKey(network_registry + "\\" + adapter, true);

                //์–ด๋Œ‘ํ„ฐ์˜ ์ด๋ฆ„ ์–ป๊ธฐ
                string deviceInstanceID = regAdapter.GetValue("DriverDesc").ToString();
                //์ ๋ณด ํŒจํ‚ท ๊ฐ’ ์ฝ๊ธฐ
                var value = Convert.ToInt32(regAdapter.GetValue("*JumboPacket"));
                //์ ๋ณด ํŒจํ‚ท ๊ฐ’ ์“ฐ๊ธฐ
                regAdapter.SetValue("*JumboPacket", "9014", RegistryValueKind.String);
            }

            Console.ReadLine();
        }
    }
}

์œ„ ์˜ˆ์ œ ์ฝ”๋“œ๋Š” ์ ๋ณด ํŒจํ‚ท์„ ํ™•์ธํ•˜๊ณ , ๊ฐ’์„ 9014๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์„ค์ • ๊ฐ’๋„ ์œ„์™€ ๊ฐ™์ด ์ ์šฉํ•˜๋ฉด ์„ค์ • ๊ฐ’ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ ๋ณด-ํŒจํ‚ท์ด-๋ณ€๊ฒฝ๋œ-๋ชจ์Šต
์ ๋ณด ํŒจํ‚ท์ด ๋ณ€๊ฒฝ๋œ ๋ชจ์Šต

์œ„ ์˜ˆ์ œ๋Š” ์•„๋ž˜ ์ฒจ๋ถ€๋œ ํŒŒ์ผ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

ExamNetwork_3.zip
0.00MB

์ •๋ฆฌ

์œ„์—์„œ ๋ณด์—ฌ์ค€ ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์กฐํ•ฉํ•˜๋ฉด ๋„คํŠธ์›Œํฌ ๋ชฉ๋ก์„ ํ™•์ธํ•˜๊ณ , IP ์ฃผ์†Œ์™€ ๊ณ ๊ธ‰ ์„ค์ •์„ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๋™์ž‘์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•