특정 호스트에서 특정 포트가 열려 있는지 여부를 확인하고 싶습니다. 어떻게해야합니까? connectTo
을 호출하고 다음 단계가 끝나면 실제로 포트가 열려 있는지 어떻게 알 수 있습니까?특정 포트가 열렸는지 확인하고 싶습니다 (하스켈)?
main = do
withSocketsDo $ do
h <- connectTo "some_host.com" $ PortNumber 1234
--- and....?
특정 호스트에서 특정 포트가 열려 있는지 여부를 확인하고 싶습니다. 어떻게해야합니까? connectTo
을 호출하고 다음 단계가 끝나면 실제로 포트가 열려 있는지 어떻게 알 수 있습니까?특정 포트가 열렸는지 확인하고 싶습니다 (하스켈)?
main = do
withSocketsDo $ do
h <- connectTo "some_host.com" $ PortNumber 1234
--- and....?
connectTo
하면 반환, 다음 포트가 열려 있습니다. 그렇지 않으면 호스트가, 심지어 nmap은 모든 포트가 닫혀 있다고 생각합니다 portknocking에 의해 보호되는 경우 그래서 당신은
import Network(connectTo, PortID(..), PortNumber(..))
import Control.Exception(try, SomeException)
import System.IO(Handle)
isPortOpen :: String -> PortNumber -> IO Bool
isPortOpen host port = do
h <- try $ connectTo host (PortNumber port) :: IO (Either SomeException Handle)
return $ case h of
Left _ -> False
Right _ -> True
을 할 수
또는
같은 예외를 throw합니다. 얼마나 정확하게 포트를 쿼리 하시겠습니까? –@ V.Semeria, 우리는 그것이 보호되지 않는다고 추측 할 수 있습니다. – Dorkajo