{"id":20669553,"url":"https://github.com/iitis/dnsclass","last_synced_at":"2025-10-23T22:46:40.522Z","repository":{"id":13512928,"uuid":"16203925","full_name":"iitis/dnsclass","owner":"iitis","description":"Reference implementation of the DNS-Class algorithm in Python","archived":false,"fork":false,"pushed_at":"2014-01-24T12:34:33.000Z","size":496,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-13T11:59:09.363Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"octocat/Spoon-Knife","license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iitis.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-24T12:32:55.000Z","updated_at":"2021-12-16T04:24:45.000Z","dependencies_parsed_at":"2022-09-04T05:22:59.940Z","dependency_job_id":null,"html_url":"https://github.com/iitis/dnsclass","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iitis%2Fdnsclass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iitis%2Fdnsclass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iitis%2Fdnsclass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iitis%2Fdnsclass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iitis","download_url":"https://codeload.github.com/iitis/dnsclass/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249760126,"owners_count":21321843,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T20:14:46.835Z","updated_at":"2025-10-23T22:46:35.492Z","avatar_url":"https://github.com/iitis.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"About\n=====\n\n**dnsclass**: open source, reference implementation of the DNS-Class algorithm in Python.\n\nThe classifier takes as input ARFF files generated with [the Flowcalc\nprogram](http://mutrics.iitis.pl/flowcalc) (using the `dns` and `lpi` plugins). **dnsclass**\nclassifies given network traffic flows basing on their DNS context and outputs a classification\nreport.\n\nThe classification process is divided into several steps, into script files named `stepN_*`, e.g.\n`step6_predict.py`. There are also scripts named `cvN_*` that support cross-validation.\n\nFor scientific works, please cite the following paper:  \n\u003e Foremski P., Callegari C., Pagano M., *\"DNS-Class: Immediate classification of IP flows using DNS\"*\n\n**Author**: Paweł Foremski \u003cpjf@iitis.pl\u003e  \n**Copyright (C)** 2012-2013 [IITiS PAN Gliwice](http://www.iitis.pl/)  \n**Licensed** under GNU GPL v3\n\nThis software package uses [libshorttext](http://www.csie.ntu.edu.tw/~cjlin/libshorttext/), which is\nincluded in the dnsclass repository, but may be licensed differently.\n\nClassifier steps\n================\n\nThe purpose of the steps:\n* `step1_reformat.sh`: reformat input ARFF files into the target text input format; skip all flows\n   but those of selected protocols; some corrections may be required to match your ARFF files\n* `step2_divide.sh`: divide the dataset into training and testing (may be skipped)\n* `step3_convert_train.py`: convert the training dataset into the libsvm format (Vector Space Model (VSM))\n* `step4_train.sh`: train the model\n* `step5_convert_test.py`: as step 3, but for the testing dataset\n* `step6_predict.py`: classify the testing dataset\n* `step7_analyze.py`: show the confusion matrix and errors made in step 6\n\nProject information\n================\nProject realized at [The Institute of Theoretical and Applied Informatics of the Polish Academy of\nSciences](http://www.iitis.pl/), under grant nr 2011/01/N/ST6/07202 of the [Polish National Science\nCentre](http://www.ncn.gov.pl/).\n\nProject website: http://mutrics.iitis.pl/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiitis%2Fdnsclass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiitis%2Fdnsclass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiitis%2Fdnsclass/lists"}