特定のホストで特定のポートが開いているかどうかをチェックします。どうやってやるの? connectTo
と呼んだ後で、ポートが開いているかどうかを実際にどのように知ることができますか?特定のポート(Haskell)が開いているかどうかチェックしたいですか?
main = do
withSocketsDo $ do
h <- connectTo "some_host.com" $ PortNumber 1234
--- and....?
特定のホストで特定のポートが開いているかどうかをチェックします。どうやってやるの? connectTo
と呼んだ後で、ポートが開いているかどうかを実際にどのように知ることができますか?特定のポート(Haskell)が開いているかどうかチェックしたいですか?
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
を行うことができ
または
のような例外がスローされます。どのくらい正確にポートを照会したいですか? –@ V.Semeria、それは保護されていないと見なすことができます。 – Dorkajo