{"id":2196,"date":"2023-04-11T22:22:16","date_gmt":"2023-04-11T13:22:16","guid":{"rendered":"https:\/\/tippang.com\/?p=2196"},"modified":"2023-04-12T23:16:41","modified_gmt":"2023-04-12T14:16:41","slug":"python%ec%9c%bc%eb%a1%9c-%eb%84%a4%ed%8a%b8%ec%9b%8c%ed%81%ac-%ec%8a%a4%ec%ba%90%eb%8b%9d-%eb%a7%88%ec%8a%a4%ed%84%b0%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/tippang.com\/?p=2196","title":{"rendered":"Python\uc73c\ub85c \ub124\ud2b8\uc6cc\ud06c \uc2a4\uce90\ub2dd \ub9c8\uc2a4\ud130\ud558\uae30"},"content":{"rendered":"<figure class=\"wp-block-unsplash-image wp-block-image is-style-default size-large\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/images.unsplash.com\/photo-1661956601349-f61c959a8fd4?ixid=Mnw0MzQ2MjZ8MHwxfGFsbHx8fHx8fHx8fDE2ODEyMTk3NDk&ixlib=rb-4.0.3&fm=jpg&q=85&fit=crop&w=1024&h=683\" alt=\"a white tablet with a few pens and a few pencils\" class=\"wp-image-2200\" width=\"1024\" height=\"683\" title=\"\" srcset=\"https:\/\/images.unsplash.com\/photo-1661956601349-f61c959a8fd4?ixid=Mnw0MzQ2MjZ8MHwxfGFsbHx8fHx8fHx8fDE2ODEyMTk3NDk&amp;ixlib=rb-4.0.3&amp;fm=jpg&amp;q=85&amp;fit=crop&amp;w=300&amp;h=200 300w, https:\/\/images.unsplash.com\/photo-1661956601349-f61c959a8fd4?ixid=Mnw0MzQ2MjZ8MHwxfGFsbHx8fHx8fHx8fDE2ODEyMTk3NDk&amp;ixlib=rb-4.0.3&amp;fm=jpg&amp;q=85&amp;fit=crop&amp;w=1024&amp;h=682 1024w, https:\/\/images.unsplash.com\/photo-1661956601349-f61c959a8fd4?ixid=Mnw0MzQ2MjZ8MHwxfGFsbHx8fHx8fHx8fDE2ODEyMTk3NDk&amp;ixlib=rb-4.0.3&amp;fm=jpg&amp;q=85&amp;fit=crop&amp;w=150&amp;h=100 150w, https:\/\/images.unsplash.com\/photo-1661956601349-f61c959a8fd4?ixid=Mnw0MzQ2MjZ8MHwxfGFsbHx8fHx8fHx8fDE2ODEyMTk3NDk&amp;ixlib=rb-4.0.3&amp;fm=jpg&amp;q=85&amp;fit=crop&amp;w=768&amp;h=512 768w, https:\/\/images.unsplash.com\/photo-1661956601349-f61c959a8fd4?ixid=Mnw0MzQ2MjZ8MHwxfGFsbHx8fHx8fHx8fDE2ODEyMTk3NDk&amp;ixlib=rb-4.0.3&amp;fm=jpg&amp;q=85&amp;fit=crop&amp;w=1536&amp;h=1024 1536w, https:\/\/images.unsplash.com\/photo-1661956601349-f61c959a8fd4?ixid=Mnw0MzQ2MjZ8MHwxfGFsbHx8fHx8fHx8fDE2ODEyMTk3NDk&amp;ixlib=rb-4.0.3&amp;fm=jpg&amp;q=85&amp;fit=crop&amp;w=2048&amp;h=1365 2048w, https:\/\/images.unsplash.com\/photo-1661956601349-f61c959a8fd4?ixid=Mnw0MzQ2MjZ8MHwxfGFsbHx8fHx8fHx8fDE2ODEyMTk3NDk&amp;ixlib=rb-4.0.3&amp;fm=jpg&amp;q=85&amp;fit=crop&amp;w=1080&amp;h=540 1080w, https:\/\/images.unsplash.com\/photo-1661956601349-f61c959a8fd4?ixid=Mnw0MzQ2MjZ8MHwxfGFsbHx8fHx8fHx8fDE2ODEyMTk3NDk&amp;ixlib=rb-4.0.3&amp;fm=jpg&amp;q=85&amp;fit=crop&amp;w=1140&amp;h=760 1140w, https:\/\/images.unsplash.com\/photo-1661956601349-f61c959a8fd4?ixid=Mnw0MzQ2MjZ8MHwxfGFsbHx8fHx8fHx8fDE2ODEyMTk3NDk&amp;ixlib=rb-4.0.3&amp;fm=jpg&amp;q=85&amp;fit=crop&amp;w=500&amp;h=330 500w, https:\/\/images.unsplash.com\/photo-1661956601349-f61c959a8fd4?ixid=Mnw0MzQ2MjZ8MHwxfGFsbHx8fHx8fHx8fDE2ODEyMTk3NDk&amp;ixlib=rb-4.0.3&amp;fm=jpg&amp;q=85&amp;fit=crop&amp;w=75&amp;h=50 75w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Photo by <a href=\"https:\/\/unsplash.com\/@mailchimp\" rel=\"nofollow noopener\" target=\"_blank\">Mailchimp<\/a> on <a href=\"https:\/\/unsplash.com\/?utm_source=tippang-com&#038;utm_medium=referral\" rel=\"nofollow noopener\" target=\"_blank\">Unsplash<\/a> <\/figcaption><\/figure>\n\n\n<p>\ub124\ud2b8\uc6cc\ud06c \uc2a4\uce90\ub2dd\uc740 \ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c \uc7a5\uce58\ub97c \uac80\uc0c9\ud558\uace0 \uc5f4\ub9b0 \ud3ec\ud2b8\uc640 \uc11c\ube44\uc2a4\ub97c \uc2dd\ubcc4\ud558\ub294 \ud504\ub85c\uc138\uc2a4\uc785\ub2c8\ub2e4. \uc774\ub294 \ub124\ud2b8\uc6cc\ud06c \ubcf4\uc548\uc758 \ud544\uc218 \ubd80\ubd84\uc73c\ub85c, \uc2dc\uc2a4\ud15c \uad00\ub9ac\uc790\uac00 \uc7a0\uc7ac\uc801\uc778 \ucde8\uc57d\uc131\uacfc \uacf5\uaca9 \ubca1\ud130\ub97c \uc2dd\ubcc4\ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4. \uc774 \uae30\uc0ac\uc5d0\uc11c\ub294 Python\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub124\ud2b8\uc6cc\ud06c \uc2a4\uce90\ub2dd \uae30\uc220\uc744 \ud0d0\uc0c9\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\ud3ec\ud2b8-\uc2a4\uce90\ub2dd\">\ud3ec\ud2b8 \uc2a4\uce90\ub2dd<\/h2>\n\n\n\n<p>\ud3ec\ud2b8 \uc2a4\uce94\uc740 \ub300\uc0c1 \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc5f4\ub9b0 \ud3ec\ud2b8\ub97c \uc2dd\ubcc4\ud558\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \uae30\uc220\uc785\ub2c8\ub2e4. Python\uc740 \uc18c\ucf13 \ubc0f nmap \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ud3ec\ud568\ud558\uc5ec \ud3ec\ud2b8 \uc2a4\uce94\uc744 \uad6c\ud604\ud558\uae30 \uc704\ud55c \uc5ec\ub7ec \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"\uc18c\ucf13-\ub77c\uc774\ube0c\ub7ec\ub9ac-\uc0ac\uc6a9\">\uc18c\ucf13 \ub77c\uc774\ube0c\ub7ec\ub9ac \uc0ac\uc6a9<\/h3>\n\n\n\n<p>\uc18c\ucf13 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc5ec \uae30\ubcf8 \ud3ec\ud2b8 \uc2a4\uce94\uc744 \uc218\ud589\ud558\ub824\uba74 \ub2e4\uc74c \ucf54\ub4dc\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>import socket\n\ntarget_host = \"192.168.1.1\"\ntarget_ports = [21, 22, 80, 443]\n\nfor port in target_ports:\n    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n    s.settimeout(2)\n    result = s.connect_ex((target_host, port))\n    if result == 0:\n        print(\"Port {} is open\".format(port))\n    s.close()\n<\/code><\/pre>\n\n\n\n<p>\uc774 \ucf54\ub4dc\ub294 target_ports \ubaa9\ub85d\uc758 \uac01 \ud3ec\ud2b8\uc5d0 \ub300\ud55c \uc18c\ucf13\uc744 \ub9cc\ub4e4\uace0 target_host\uc5d0 \uc5f0\uacb0\uc744 \uc2dc\ub3c4\ud569\ub2c8\ub2e4. \uc5f0\uacb0\uc5d0 \uc131\uacf5\ud558\uba74 \ud3ec\ud2b8\uac00 \uc5f4\ub9b0 \uac83\uc73c\ub85c \uac04\uc8fc\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"nmap-\ub77c\uc774\ube0c\ub7ec\ub9ac-\uc0ac\uc6a9\">nmap \ub77c\uc774\ube0c\ub7ec\ub9ac \uc0ac\uc6a9<\/h3>\n\n\n\n<p>nmap \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 OS \uac10\uc9c0 \ubc0f \uc11c\ube44\uc2a4 \uc2dd\ubcc4\uacfc \uac19\uc740 \ucd94\uac00 \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\ub294 \uace0\uae09 \ud3ec\ud2b8 \uac80\uc0c9 \ub3c4\uad6c\uc785\ub2c8\ub2e4. nmap \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\ub824\uba74 \ub2e4\uc74c \ucf54\ub4dc\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>import nmap\n\nnm = nmap.PortScanner()\n\ntarget_host = \"192.168.1.1\"\ntarget_ports = \"21,22,80,443\"\n\nnm.scan(hosts=target_host, arguments=\"-p \" + target_ports)\n\nfor host in nm.all_hosts():\n    print(\"Host : %s\" % host)\n    for port in nm[host]['tcp'].keys():\n        print(\"Port : %s\\tState : %s\" % (port, nm[host]['tcp'][port]['state']))\n<\/code><\/pre>\n\n\n\n<p>\uc774 \ucf54\ub4dc\ub294 nmap.PortScanner() \ud074\ub798\uc2a4\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \ub9cc\ub4e4\uace0 scan() \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc9c0\uc815\ub41c target_ports\ub97c \uc0ac\uc6a9\ud558\uc5ec target_host\uc5d0\uc11c \ud3ec\ud2b8 \uc2a4\uce94\uc744 \uc218\ud589\ud569\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c \uacb0\uacfc\uac00 \ucf58\uc194\uc5d0 \uc778\uc1c4\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\ub124\ud2b8\uc6cc\ud06c-\uac80\uc0c9\">\ub124\ud2b8\uc6cc\ud06c \uac80\uc0c9<\/h2>\n\n\n\n<p>\ub124\ud2b8\uc6cc\ud06c \uac80\uc0c9\uc740 \ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c \uc7a5\uce58\ub97c \uc2dd\ubcc4\ud558\ub294 \ud504\ub85c\uc138\uc2a4\uc785\ub2c8\ub2e4. Python\uc740 scapy \ubc0f netifaces \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ud3ec\ud568\ud558\uc5ec \ub124\ud2b8\uc6cc\ud06c \uac80\uc0c9\uc744 \uad6c\ud604\ud558\uae30 \uc704\ud55c \uc5ec\ub7ec \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"scapy-\ub77c\uc774\ube0c\ub7ec\ub9ac-\uc0ac\uc6a9\">scapy \ub77c\uc774\ube0c\ub7ec\ub9ac \uc0ac\uc6a9<\/h3>\n\n\n\n<p>scapy \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub124\ud2b8\uc6cc\ud06c \uac80\uc0c9\uc744 \uc218\ud589\ud558\ub824\uba74 \ub2e4\uc74c \ucf54\ub4dc\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>from scapy.all import ARP, Ether, srp\n\ntarget_ip = \"192.168.1.0\/24\"\n\n# Create ARP request\narp = ARP(pdst=target_ip)\n\n# Create Ethernet frame\nether = Ether(dst=\"ff:ff:ff:ff:ff:ff\")\n\n# Combine Ethernet and ARP requests\npacket = ether\/arp\n\n# Send packet and capture response\nresult = srp(packet, timeout=3, verbose=0)[0]\n\n# Extract results\ndevices = []\nfor sent, received in result:\n    devices.append({'ip': received.psrc, 'mac': received.hwsrc})\n\n# Print results\nfor device in devices:\n    print(\"IP Address: {}\\tMAC Address: {}\".format(device['ip'], device['mac']))\n<\/code><\/pre>\n\n\n\n<p>\uc774 \ucf54\ub4dc\ub294 target_ip\uc5d0 \ub300\ud55c ARP \uc694\uccad\uc744 \uc0dd\uc131\ud558\uace0 srp() \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub124\ud2b8\uc6cc\ud06c\ub85c \ubcf4\ub0c5\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c \uc751\ub2f5\uc744 \ucea1\ucc98\ud558\uace0 \uad6c\ubb38 \ubd84\uc11d\ud558\uc5ec \ub124\ud2b8\uc6cc\ud06c\uc5d0 \uc788\ub294 \uc7a5\uce58\uc758 IP \ubc0f MAC \uc8fc\uc18c\ub97c \ucd94\ucd9c\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"netifaces-\ub77c\uc774\ube0c\ub7ec\ub9ac-\uc0ac\uc6a9\">netifaces \ub77c\uc774\ube0c\ub7ec\ub9ac \uc0ac\uc6a9<\/h3>\n\n\n\n<p>netifaces \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 \uba38\uc2e0\uc758 \ub124\ud2b8\uc6cc\ud06c \uc778\ud130\ud398\uc774\uc2a4\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \uac80\uc0c9\ud558\ub294 \ub370 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ub354 \ub2e8\uc21c\ud55c \ub3c4\uad6c\uc785\ub2c8\ub2e4. netifaces \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\ub824\uba74 \ub2e4\uc74c \ucf54\ub4dc\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>import net<\/code>\n\nnetifaces \ub77c\uc774\ube0c\ub7ec\ub9ac \uc0ac\uc6a9\n\n\nimport netifaces\n\n# Get network interfaces\ninterfaces = netifaces.interfaces()\n\n# Print information for each interface\nfor interface in interfaces:\n    iface = netifaces.ifaddresses(interface)\n    if netifaces.AF_INET in iface:\n        ip = iface[netifaces.AF_INET][0]['addr']\n        netmask = iface[netifaces.AF_INET][0]['netmask']\n        broadcast = iface[netifaces.AF_INET][0]['broadcast']\n        print(\"Interface: {}\\tIP Address: {}\\tNetmask: {}\\tBroadcast: {}\".format(interface, ip, netmask, broadcast))\n\uc774 \ucf54\ub4dc\ub294 interface() \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2dc\uc2a4\ud15c\uc758 \ub124\ud2b8\uc6cc\ud06c \uc778\ud130\ud398\uc774\uc2a4 \ubaa9\ub85d\uc744 \uac80\uc0c9\ud558\uace0 ifaddresses() \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \uac01 \uc778\ud130\ud398\uc774\uc2a4\uc5d0 \ub300\ud55c IP \uc8fc\uc18c, \ub137\ub9c8\uc2a4\ud06c \ubc0f \ube0c\ub85c\ub4dc\uce90\uc2a4\ud2b8 \uc8fc\uc18c\ub97c \uac80\uc0c9\ud569\ub2c8\ub2e4.\n\n\n\uacb0\ub860\n\n\ub124\ud2b8\uc6cc\ud06c \uc2a4\uce90\ub2dd\uc740 \uc2dc\uc2a4\ud15c \uad00\ub9ac\uc790\uac00 \uc7a0\uc7ac\uc801\uc778 \ucde8\uc57d\uc131\uacfc \uacf5\uaca9 \ubca1\ud130\ub97c \uc2dd\ubcc4\ud560 \uc218 \uc788\ub3c4\ub85d \ud558\ub294 \ub124\ud2b8\uc6cc\ud06c \ubcf4\uc548\uc758 \uc911\uc694\ud55c \ubd80\ubd84\uc785\ub2c8\ub2e4. \uc774 \uae30\uc0ac\uc5d0\uc11c\ub294 \ud3ec\ud2b8 \uc2a4\uce90\ub2dd \ubc0f \ub124\ud2b8\uc6cc\ud06c \uac80\uc0c9\uc744 \ud3ec\ud568\ud558\uc5ec Python\uc744 \uc0ac\uc6a9\ud558\ub294 \ub124\ud2b8\uc6cc\ud06c \uc2a4\uce90\ub2dd \uae30\uc220\uc744 \uc0b4\ud3b4\ubcf4\uc558\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uae30\uc220\uc744 \uc0ac\uc6a9\ud558\uba74 \ub124\ud2b8\uc6cc\ud06c\uc758 \uc7a5\uce58\uc640 \uc11c\ube44\uc2a4\ub97c \ub354 \uc798 \uc774\ud574\ud558\uace0 \uc774\ub97c \ubcf4\ud638\ud558\uae30 \uc704\ud55c \uc870\uce58\ub97c \ucde8\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\n\n\ucc38\uc870\n\n\ud30c\uc774\uc36c \ubb38\uc11c: \uc18c\ucf13\n\ud30c\uc774\uc36c \ubb38\uc11c: nmap\nScapy \ubb38\uc11c: scapy.all\n\ub124\ud2f0\ud398\uc774\uc2a4 \ubb38\uc11c: netifaces<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\ub124\ud2b8\uc6cc\ud06c \uc2a4\uce90\ub2dd\uc740 \ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c \uc7a5\uce58\ub97c \uac80\uc0c9\ud558\uace0 \uc5f4\ub9b0 \ud3ec\ud2b8\uc640 \uc11c\ube44\uc2a4\ub97c \uc2dd\ubcc4\ud558\ub294 \ud504\ub85c\uc138\uc2a4\uc785\ub2c8\ub2e4.<\/p>\n","protected":false},"author":2,"featured_media":2200,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41,6],"tags":[114,110,112,113,111],"class_list":["post-2196","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category--python","category-tech","tag-cybersecurity","tag-networkdiscovery","tag-networkscanning","tag-portscanning","tag-pythonsecurity"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/tippang.com\/index.php?rest_route=\/wp\/v2\/posts\/2196","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tippang.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tippang.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tippang.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tippang.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2196"}],"version-history":[{"count":4,"href":"https:\/\/tippang.com\/index.php?rest_route=\/wp\/v2\/posts\/2196\/revisions"}],"predecessor-version":[{"id":2204,"href":"https:\/\/tippang.com\/index.php?rest_route=\/wp\/v2\/posts\/2196\/revisions\/2204"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tippang.com\/index.php?rest_route=\/wp\/v2\/media\/2200"}],"wp:attachment":[{"href":"https:\/\/tippang.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2196"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tippang.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2196"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tippang.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}