pax_global_header00006660000000000000000000000064141113437260014514gustar00rootroot0000000000000052 comment=91a4996de9e49ce0202d2931005f9c1e86a38a0c admsasha-qnetstatview-91a4996de9e4/000077500000000000000000000000001411134372600171545ustar00rootroot00000000000000admsasha-qnetstatview-91a4996de9e4/.gear/000077500000000000000000000000001411134372600201505ustar00rootroot00000000000000admsasha-qnetstatview-91a4996de9e4/.gear/qnetstatview.spec000066400000000000000000000025011411134372600235600ustar00rootroot00000000000000Name: qnetstatview Version: 1.5.7 Release: alt1 Summary: Shows detailed listings of all TCP and UDP endpoints Group: Networking/Other License: GPLv3+ URL: https://dansoft.ru/more.html?id=1016 Source0: %{name}-%{version}.tar BuildRequires: qt5-tools BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5Gui) BuildRequires: pkgconfig(Qt5Widgets) BuildRequires: pkgconfig(Qt5Network) %description Shows detailed listings of all TCP and UDP endpoints. %prep %setup -q %build %qmake_qt5 %make_build %install %makeinstall INSTALL_ROOT=%{buildroot} %files %doc README.md %{_bindir}/%{name} %{_datadir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/pixmaps/%{name}.png %{_datadir}/polkit-1/actions/org.pkexec.qnetstatview.policy %changelog * Wed Aug 25 2021 Alexander Danilov 1.5.7-alt1 - add icons - add Ukrainian translation - change url homepage * Mon Feb 3 2020 Alexander Danilov 1.5.6-alt1 - release 1.5.6 * Thu Dec 26 2019 Alexander Danilov 1.5.5-alt1 - release 1.5.5 * Thu Dec 26 2019 Alexander Danilov 1.5.4-alt1 - release 1.5.4 * Thu Aug 15 2019 Alexander Danilov 1.5.3-alt1 - release 1.5.3 * Fri Aug 2 2019 Alexander Danilov 1.5.2-alt1 - release 1.5.2 admsasha-qnetstatview-91a4996de9e4/.gear/rules000066400000000000000000000000731411134372600212250ustar00rootroot00000000000000tar: . name=@name@-@version@ spec: .gear/qnetstatview.spec admsasha-qnetstatview-91a4996de9e4/.gitignore000066400000000000000000000006711411134372600211500ustar00rootroot00000000000000# Compiled Object files *.slo *.lo *.o *.obj # Precompiled Headers *.gch *.pch # Compiled Dynamic libraries *.so *.dylib *.dll # Fortran module files *.mod # Compiled Static libraries *.lai *.la *.a *.lib # Executables *.exe *.out *.app /nbproject/ /0000/ /Bin/ /.build/ /.qmake.stash /langs/*.qm /Makefile /Makefile.Debug /Makefile.Release /object_script.qnetstatview.Debug /object_script.qnetstatview.Release /qnetstatview.pro.user admsasha-qnetstatview-91a4996de9e4/COPYING000066400000000000000000001045131411134372600202130ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . admsasha-qnetstatview-91a4996de9e4/DialogPasswordPrompt.cpp000066400000000000000000000013001411134372600237760ustar00rootroot00000000000000#include "DialogPasswordPrompt.h" #include "ui_DialogPasswordPrompt.h" #include "config_qnetstatview.h" DialogPasswordPrompt::DialogPasswordPrompt(QWidget *parent) : QDialog(parent), ui(new Ui::DialogPasswordPrompt) { ui->setupUi(this); this->setWindowIcon(QIcon(QString(PATH_USERDATA)+"/images/qnetstatview.png")); ui->label->setPixmap(QPixmap(QString(PATH_USERDATA)+"/images/key.png")); connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(close())); connect(ui->pushButton_2,SIGNAL(clicked(bool)),this,SLOT(accept())); } DialogPasswordPrompt::~DialogPasswordPrompt(){ delete ui; } QString DialogPasswordPrompt::getPassword(){ return ui->lineEdit->text(); } admsasha-qnetstatview-91a4996de9e4/DialogPasswordPrompt.h000066400000000000000000000006361411134372600234560ustar00rootroot00000000000000#ifndef DIALOGPASSWORDPROMPT_H #define DIALOGPASSWORDPROMPT_H #include namespace Ui { class DialogPasswordPrompt; } class DialogPasswordPrompt : public QDialog { Q_OBJECT public: explicit DialogPasswordPrompt(QWidget *parent = 0); ~DialogPasswordPrompt(); QString getPassword(); private: Ui::DialogPasswordPrompt *ui; }; #endif // DIALOGPASSWORDPROMPT_H admsasha-qnetstatview-91a4996de9e4/DialogPasswordPrompt.ui000066400000000000000000000061711411134372600236440ustar00rootroot00000000000000 DialogPasswordPrompt 0 0 404 219 Password prompt 0 170 401 41 Qt::Horizontal 40 20 Continue Cancel 10 10 91 91 TextLabel true 119 10 281 100 <html><head/><body><p>This action requires &quot;root&quot; user privileges. Enter his password and click &quot;Continue&quot; or click &quot;Cancel&quot; to cancel the transition to the user &quot;root&quot;</p></body></html> Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop true 10 110 391 51 Password: QLineEdit::Password lineEdit pushButton_2 pushButton admsasha-qnetstatview-91a4996de9e4/FormAbout.cpp000066400000000000000000000023351411134372600215610ustar00rootroot00000000000000#include "FormAbout.h" #include "ui_FormAbout.h" #include #include #include "config_qnetstatview.h" FormAbout::FormAbout(QWidget *parent) : QDialog(parent), ui(new Ui::FormAbout) { ui->setupUi(this); this->setFixedSize(this->width(),this->height()); this->setWindowTitle(tr("About")); this->setWindowIcon(QIcon(QString(PATH_USERDATA)+"/images/qnetstatview.png")); ui->label_2->setText(tr("Version:")+" "+QString(QNETSTATVIEW_VERSION)); ui->label_3->setText(tr("Date build:")+" "+QString(QNETSTATVIEW_DATEBUILD)); ui->label_4->setText("© 2013-2020 DanSoft. "+tr("All rights reserved.")); ui->label_5->setPixmap(QPixmap(QString(PATH_USERDATA)+"/images/qnetstatview.png")); connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(close())); connect(ui->pushButton_2,SIGNAL(clicked(bool)),this,SLOT(visit_web_site())); connect(ui->pushButton_3,SIGNAL(clicked(bool)),this,SLOT(visit_bitbucket())); } FormAbout::~FormAbout() { delete ui; } void FormAbout::visit_web_site(){ QDesktopServices::openUrl(QUrl("https://www.dansoft.ru/")); } void FormAbout::visit_bitbucket(){ QDesktopServices::openUrl(QUrl("https://bitbucket.org/admsasha/qnetstatview")); } admsasha-qnetstatview-91a4996de9e4/FormAbout.h000066400000000000000000000006001411134372600212170ustar00rootroot00000000000000#ifndef FORMABOUT_H #define FORMABOUT_H #include namespace Ui { class FormAbout; } class FormAbout : public QDialog { Q_OBJECT public: explicit FormAbout(QWidget *parent = nullptr); ~FormAbout(); private slots: void visit_web_site(); void visit_bitbucket(); private: Ui::FormAbout *ui; }; #endif // FORMABOUT_H admsasha-qnetstatview-91a4996de9e4/FormAbout.ui000066400000000000000000000125541411134372600214200ustar00rootroot00000000000000 FormAbout 0 0 422 221 Dialog 10 10 401 31 15 QNetStatView Qt::AlignCenter 10 50 401 21 10 Version: 1.0.0 Qt::AlignCenter 10 70 401 31 10 Date build: 19.02.2013 Qt::AlignCenter 6 140 411 20 10 <html><head/><body><p>© 2013-2020 DanSoft. All rights reserved.</p></body></html> Qt::AlignCenter 30 30 64 64 picture true Qt::AlignCenter 10 100 401 31 10 License: GPLv3+ Qt::AlignCenter 0 180 421 41 QFrame::NoFrame QFrame::Raised 6 3 3 3 3 Qt::Horizontal 40 20 0 31 BitBucket 0 31 10 Visit web site 0 31 10 Close admsasha-qnetstatview-91a4996de9e4/ProcessExplorer.cpp000066400000000000000000000074271411134372600230310ustar00rootroot00000000000000#include "ProcessExplorer.h" #include "ui_ProcessExplorer.h" #include #include ProcessExplorer::ProcessExplorer(int pid, QWidget *parent) : QDialog(parent), ui(new Ui::ProcessExplorer), _pid(pid) { ui->setupUi(this); fillFields(_pid); ui->tableWidget->horizontalHeader()->setSectionResizeMode(0,QHeaderView::ResizeToContents); ui->tableWidget->horizontalHeader()->setSectionResizeMode(1,QHeaderView::Stretch); ui->tableWidget->horizontalHeader()->setSectionResizeMode(2,QHeaderView::ResizeToContents); ui->tableWidget->horizontalHeader()->setSectionResizeMode(3,QHeaderView::ResizeToContents); connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(close())); } ProcessExplorer::~ProcessExplorer(){ delete ui; } void ProcessExplorer::fillFields(int pid){ ui->label_7->setText(""); ui->label_5->setText(""); ui->label_6->setText(""); // general QString procPath = "/proc/"+QString::number(pid); // path exe QFile filePathExe(procPath+"/exe"); ui->label_5->setText(filePathExe.symLinkTarget()); // command line QFile fileCmdLine(procPath+"/cmdline"); if (fileCmdLine.open(QIODevice::ReadOnly)){ QByteArray fileContents = fileCmdLine.readAll(); fileContents.replace(QChar(0x00)," "); ui->label_6->setText(fileContents); fileCmdLine.close(); } // path exe QFile fileCurrentDir(procPath+"/cwd"); ui->label_7->setText(fileCurrentDir.symLinkTarget()); QMap mapFileProcStatus = mapFromFile("/proc/"+QString::number(pid)+"/status"); ui->label_8->setText(mapFileProcStatus["Pid"]); ui->label_10->setText(mapFileProcStatus["PPid"]); ui->label_12->setText(mapFileProcStatus["State"]); // Environment QFile fileEnviron(procPath+"/environ"); if (fileEnviron.open(QIODevice::ReadOnly)){ QByteArray fileContents = fileEnviron.readAll(); fileContents.replace(QChar(0x00),"\n"); ui->textEdit->setText(fileContents); fileEnviron.close(); } // Files QTableWidgetItem *tmpWidgetItem = nullptr; QDir dir(procPath+"/fd"); dir.setFilter(QDir::Files); dir.setSorting(QDir::Name); QFileInfoList list = dir.entryInfoList(); for (int i = 0; i < list.size(); ++i) { QFileInfo fileInfo = list.at(i); QString Path = fileInfo.symLinkTarget(); QMap mapFile = mapFromFile("/proc/"+QString::number(pid)+"/fdinfo/"+fileInfo.fileName()); int pos = mapFile["pos"].toInt(); QString flags = mapFile["flags"]; ui->tableWidget->setRowCount(i+1); tmpWidgetItem = new QTableWidgetItem(fileInfo.fileName()); ui->tableWidget->setItem(i, 0, tmpWidgetItem); tmpWidgetItem = new QTableWidgetItem(Path); tmpWidgetItem->setToolTip(Path); ui->tableWidget->setItem(i, 1, tmpWidgetItem); tmpWidgetItem = new QTableWidgetItem(QString::number(pos)); ui->tableWidget->setItem(i, 2, tmpWidgetItem); tmpWidgetItem = new QTableWidgetItem(flags); ui->tableWidget->setItem(i, 3, tmpWidgetItem); } } QMap ProcessExplorer::mapFromFile(QString path){ QMap result; QFile file(path); if (!file.open(QIODevice::ReadOnly|QIODevice::Text)){ return result; } QByteArray contents = file.readAll(); QStringList lines = QString(contents).split(QRegExp("[\r|\n]")); for (QString line:lines){ QStringList pairs = line.split(":"); if (pairs.size()==2){ QString key=pairs.at(0); QString value = pairs.at(1); value.replace(QRegExp("^\\s+"),""); value.replace(QRegExp("\\s+$"),""); result[key]=value; } } file.close(); return result; } admsasha-qnetstatview-91a4996de9e4/ProcessExplorer.h000066400000000000000000000007241411134372600224670ustar00rootroot00000000000000#ifndef PROCESSEXPLORER_H #define PROCESSEXPLORER_H #include namespace Ui { class ProcessExplorer; } class ProcessExplorer : public QDialog { Q_OBJECT public: explicit ProcessExplorer(int pid,QWidget *parent = 0); ~ProcessExplorer(); private: Ui::ProcessExplorer *ui; int _pid; void fillFields(int pid); QMap mapFromFile(QString path); }; #endif // PROCESSEXPLORER_H admsasha-qnetstatview-91a4996de9e4/ProcessExplorer.ui000066400000000000000000000277671411134372600226750ustar00rootroot00000000000000 ProcessExplorer 0 0 644 432 Process explorer 3 2 3 3 3 Qt::Horizontal 40 20 Close 0 General TextLabel Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse 0 26 PPid: 0 26 Command line: 0 26 Status: Qt::Vertical QSizePolicy::Fixed 20 10 TextLabel Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse 0 26 Current directory: TextLabel Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse Qt::Vertical QSizePolicy::Fixed 0 10 TextLabel Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse 0 26 Path: TextLabel Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse Qt::Vertical QSizePolicy::Fixed 20 10 0 26 Pid: TextLabel Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse Qt::Vertical QSizePolicy::Fixed 20 10 Qt::Vertical QSizePolicy::Fixed 20 10 Qt::Vertical 20 314 Qt::Vertical QSizePolicy::Fixed 20 5 Environment <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Droid Sans'; font-size:10pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse Files QAbstractItemView::NoEditTriggers QAbstractItemView::NoSelection QAbstractItemView::SelectRows false Handle Path Pos Flags admsasha-qnetstatview-91a4996de9e4/ProcessList.cpp000066400000000000000000000040111411134372600221260ustar00rootroot00000000000000#include "ProcessList.h" #include #include #include #include #include #include #include #if defined(Q_OS_LINUX) || defined(Q_OS_UNIX) #include #include #endif #if defined(Q_OS_WIN) #include #include #endif #include ProcessList::ProcessList(){ } void ProcessList::killProcess(QString pid){ if (pid=="" or pid.toInt()==0){ QMessageBox::critical(nullptr,"KillProcess",QObject::tr("You cannot kill this process")); return; } #if defined(Q_OS_LINUX) || defined(Q_OS_UNIX) if (kill(pid.toInt(),SIGTERM)){ QMessageBox::critical(nullptr,"KillProcess",QObject::tr("Killing of process was not successful")); } #elif defined(Q_OS_WIN) HANDLE tmpHandle = OpenProcess(PROCESS_ALL_ACCESS, TRUE, pid.toInt()); if (NULL != tmpHandle){ TerminateProcess(tmpHandle, 0); } #else QMessageBox::critical(nullptr,"KillProcess",QObject::tr("Your OS does not support killProcess")); #endif } void ProcessList::closeConnection(QString from, QString to){ QSettings conf(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation)+"/qnetstatview.ini", QSettings::IniFormat); conf.setPath(QSettings::IniFormat, QSettings::UserScope, QDir::currentPath()); QString utiliteProcKill=conf.value("setup/prockill","").toString(); if (utiliteProcKill==""){ QMessageBox::critical(nullptr,"closeConnection",QObject::tr("set utilities for kill connections")); }else{ QStringList fromList = from.split(":"); QStringList toList = to.split(":"); utiliteProcKill.replace("%LOCAL_IP%",fromList.at(0)); utiliteProcKill.replace("%LOCAL_PORT%",fromList.at(1)); utiliteProcKill.replace("%REMOTE_IP%",toList.at(0)); utiliteProcKill.replace("%REMOTE_PORT%",toList.at(1)); system(utiliteProcKill.toStdString().c_str()); } } admsasha-qnetstatview-91a4996de9e4/ProcessList.h000066400000000000000000000011461411134372600216010ustar00rootroot00000000000000#ifndef PROCESSLIST_H #define PROCESSLIST_H #include #include #include struct sProccess { QString pid; QStringList sockets; QString program; QString cmdline; }; struct sNetStat { QString prot; QString local_address; QString rem_address; QString stat; sProccess process; int operation; QTime timeEvent; }; class ProcessList{ public: ProcessList(); static void killProcess(QString pid); static void closeConnection(QString from, QString to); }; #endif // PROCESSLIST_H admsasha-qnetstatview-91a4996de9e4/ProcessListLinux.cpp000066400000000000000000000041271411134372600231560ustar00rootroot00000000000000#include "ProcessListLinux.h" #include #include #include #include ProcessListLinux::ProcessListLinux(){ } int ProcessListLinux::initProccessList(){ // Получение списка процессов sProccess proc; QMap result; QRegExp rx_digit("^\\d+$"); QDir dir = QDir("/proc"); dir.setFilter(QDir::AllDirs); QFileInfoList pidList = dir.entryInfoList(); for (int i=0;i i(proclist); while (i.hasNext()) { i.next(); for (int p=0;p #include #include #include "ProcessList.h" class ProcessListLinux{ public: ProcessListLinux(); int initProccessList(); sProccess getProc(QString inode); private: QStringList getSockets(QString pid); QString getProgram(QString pid); QString getCmdline(QString pid); QMap proclist; }; #endif // PROCCESSLIST_H admsasha-qnetstatview-91a4996de9e4/ProcessListWindows.cpp000066400000000000000000000057671411134372600235240ustar00rootroot00000000000000#include "ProcessListWindows.h" #if defined(Q_OS_WIN) typedef LONG (WINAPI *PROCNTQSIP)(HANDLE,UINT,PVOID,ULONG,PULONG); PROCNTQSIP NtQueryInformationProcess; #endif #if defined(Q_OS_WIN) BOOL ProcessListWindows::GetProcessCmdLine(DWORD dwId,LPWSTR wBuf,DWORD dwBufLen) { LONG status; HANDLE hProcess; PROCESS_BASIC_INFORMATION pbi; PEB Peb; PROCESS_PARAMETERS ProcParam; SIZE_T dwDummy; DWORD dwSize; LPVOID lpAddress; BOOL bRet = FALSE; // Get process handle hProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE,dwId); if (!hProcess) return FALSE; // Retrieve information status = NtQueryInformationProcess(hProcess, ProcessBasicInformation, (PVOID)&pbi, sizeof(PROCESS_BASIC_INFORMATION), NULL); if (status) goto cleanup; if ( !ReadProcessMemory(hProcess, pbi.PebBaseAddress, &Peb, sizeof(PEB), &dwDummy) ) goto cleanup; if ( !ReadProcessMemory(hProcess, Peb.ProcessParameters, &ProcParam, sizeof(PROCESS_PARAMETERS), &dwDummy) ) goto cleanup; lpAddress = ProcParam.CommandLine.Buffer; dwSize = ProcParam.CommandLine.Length; if (dwBufLen #include #include #include #include "ProcessList.h" #if defined(Q_OS_WIN) #include #include #include #include #include #include #include #define ProcessBasicInformation 0 typedef struct { USHORT Length; USHORT MaximumLength; PWSTR Buffer; } UNICODE_STRING, *PUNICODE_STRING; typedef struct { ULONG AllocationSize; ULONG ActualSize; ULONG Flags; ULONG Unknown1; UNICODE_STRING Unknown2; HANDLE InputHandle; HANDLE OutputHandle; HANDLE ErrorHandle; UNICODE_STRING CurrentDirectory; HANDLE CurrentDirectoryHandle; UNICODE_STRING SearchPaths; UNICODE_STRING ApplicationName; UNICODE_STRING CommandLine; PVOID EnvironmentBlock; ULONG Unknown[9]; UNICODE_STRING Unknown3; UNICODE_STRING Unknown4; UNICODE_STRING Unknown5; UNICODE_STRING Unknown6; } PROCESS_PARAMETERS, *PPROCESS_PARAMETERS; typedef struct { ULONG AllocationSize; ULONG Unknown1; HINSTANCE ProcessHinstance; PVOID ListDlls; PPROCESS_PARAMETERS ProcessParameters; ULONG Unknown2; HANDLE Heap; } PEB, *PPEB; typedef struct { DWORD ExitStatus; PPEB PebBaseAddress; DWORD AffinityMask; DWORD BasePriority; ULONG UniqueProcessId; ULONG InheritedFromUniqueProcessId; } PROCESS_BASIC_INFORMATION; #endif class ProcessListWindows : public QObject{ Q_OBJECT public: explicit ProcessListWindows(QObject *parent = 0); int initProccessList(); sProccess getProc(QString pid); private: QStringList getSockets(QString pid); QString getProgram(QString pid); QString getCmdline(QString pid); #if defined(Q_OS_WIN) BOOL GetProcessCmdLine(DWORD dwId,LPWSTR wBuf,DWORD dwBufLen); #endif signals: public slots: }; #endif // PROCESSLISTWINDOWS_H admsasha-qnetstatview-91a4996de9e4/README.md000066400000000000000000000010201411134372600204240ustar00rootroot00000000000000# README # QNetStatView - program that will show you detailed listings of all TCP and UDP endpoints on your system, including the local and remote addresses and state of TCP connections. [![Packaging status](https://repology.org/badge/vertical-allrepos/qnetstatview.svg)](https://repology.org/project/qnetstatview/versions) ![QNetStatView images](https://dansoft.ru/data/1016/qnetstatview.png) ### How do I get set up? ### qmake make make install ### Who do I talk to? ### * email: dik@inbox.ru * www: http://dansoft.ru admsasha-qnetstatview-91a4996de9e4/cNetStat.cpp000066400000000000000000000210351411134372600214060ustar00rootroot00000000000000#include "cNetStat.h" #include #include #include #include #include cNetStat::cNetStat(){ } void cNetStat::run(){ getNetStat(); emit endReadStat(save_netstat); } QVector cNetStat::getTable(){ sNetStat netstat; QVector result; #if defined(Q_OS_LINUX) || defined(Q_OS_UNIX) QVector prots; // Протоколы QList states; // Статусы подключений // Список протоколов prots << "tcp" << "udp" << "tcp6" << "udp6" << "icmp"; // Массив статусов подключений states << "" << "ESTABLISHED" << "SYN_SENT" << "SYN_RECV" << "FIN_WAIT1" << "FIN_WAIT2"; states << "TIME_WAIT" << "CLOSE" << "CLOSE_WAIT" << "LAST_ACK" << "LISTEN"; states << "CLOSING" << "CLOSED"; // Обновление списка процесов ProcessListLinux proc; proc.initProccessList(); for (int p=0;pwhen", "retrnsmt", "uid", "timeout", "inode", "") //("", "18:", "4B80A8C0:DA90", "5480A8C0:008B", "01", "00000000:00000000", "02:000A6A42", "00000000", "500", "0", "7793475", "2", "d6798fc0", "20", "3", "32", "10", "-1", "") QStringList ns = buf.at(i).split(QRegExp("\\s+")); netstat.prot=prots.at(p).toUpper(); netstat.local_address=convAddress(ns.at(2),netstat.prot); netstat.rem_address=convAddress(ns.at(3),netstat.prot); netstat.stat=states[ns.at(4).toInt(0,16)]; netstat.process = proc.getProc(ns.at(10)); result.append(netstat); } } #endif #if defined(Q_OS_WIN) //Имя Локальный адрес Внешний адрес Состояние PID //TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 3480 //TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1708 ProcessListWindows proc; proc.initProccessList(); QProcess *myProcess = new QProcess(); myProcess->start("netstat.exe", QStringList() << "-n" << "-a" << "-o"); if (myProcess->waitForFinished(2000)==false){ qDebug() << myProcess->errorString(); return result; } QStringList table = QString(myProcess->readAll()).split("\n"); for (int t=3;tstart("netstat", QStringList() << "-s"); if (myProcess->waitForFinished(2000)==false){ qDebug() << myProcess->errorString(); return result; } QString procData = myProcess->readAll(); QStringList table = QString(procData).split("\n"); for (int t=10;t cNetStat::getNetStat(){ // Получение данных о сетевых процессах sNetStat netstat; QVector result; QVector TableNet = getTable(); for (int i=0;i0){ for (int s=0;s0;i=i-4){ octet.append(a.mid(i-4,4)); } result=octet.join(":"); }else{ for (int i=8;i>0;i=i-2){ octet.append(QString::number(a.mid(i-2,2).toInt(&ok,16))); } result=octet.join("."); } result+=":"+QString::number(p.toInt(&ok,16)); return result; } void cNetStat::writeLog(QString str){ QFile file(QDir::currentPath()+"/debug.log"); if (!file.open(QIODevice::Append | QIODevice::Text)) return; QTextStream out(&file); out << str << "\n"; file.close(); } admsasha-qnetstatview-91a4996de9e4/cNetStat.h000066400000000000000000000013431411134372600210530ustar00rootroot00000000000000#ifndef CNETSTAT_H #define CNETSTAT_H #include #include #include #include #include #include #include "ProcessList.h" #if defined(Q_OS_LINUX) || defined(Q_OS_UNIX) #include "ProcessListLinux.h" #endif #if defined(Q_OS_WIN) #include "ProcessListWindows.h" #endif class cNetStat : public QThread { Q_OBJECT public: cNetStat(); QVector getNetStat(); void run(); private: QString convAddress(QString address, QString ipv); QVector getTable(); void writeLog(QString str); QVector save_netstat; signals: void endReadStat(QVector); }; #endif // CNETSTAT_H admsasha-qnetstatview-91a4996de9e4/config_qnetstatview.h000066400000000000000000000002101411134372600234010ustar00rootroot00000000000000#ifndef CONFIG_H #define CONFIG_H #define QNETSTATVIEW_VERSION "1.5.7" #define QNETSTATVIEW_DATEBUILD "25.08.2021" #endif // CONFIG_H admsasha-qnetstatview-91a4996de9e4/images/000077500000000000000000000000001411134372600204215ustar00rootroot00000000000000admsasha-qnetstatview-91a4996de9e4/images/key.png000066400000000000000000000172361411134372600217300ustar00rootroot00000000000000PNG  IHDRddpTsRGBgAMA a pHYs  d_3IDATx^] xE~L& !G8DE% "<,,YtcW]WQ! ""\b%n! 9'\g`0鞮z뻪{p ]x{0iҤ͛71p@fbW?s$'Ccz§\Ѹ,+7oذiHBr@-2BJH!>1& !n޺ƾF\ddffƖ{pʪ.Ah0np"** F 1PYY~|>$Y)}nu?cL8KBȘ1s>o_{}6mqC>hٲԉl^/@sBd"|lٲ?Z]4P63H&FՓ(!O?=m~+7I$'ͷ"H`t:E2xq!{~a|~r5pb>֧̙SPQ#z*+&nߺulH. <4Ū7UH1'apJw>t}>(7)%eqڊ!޻TυwOSHLLR=(vaB!>|T0Az0V[}x筿c- b|ݺȚ>i2h~D#ى? p*&AmB@R%im/rc z=&Lz?p/I},$iRhuF `~/L&cqλuի j2yI R b}("L̚(o0*e nԂuӡc'k QR\ft}&\4BFzdBQQ!aTӧ/"PFQjp7&d,"ூMv>T*M^*CIJIj8@Dh6nK=o۴yJ58fGH?(G$aptQ#U%{RءfnUȬ qxo.6Ɓ];Q\TI P> ظx4JKG뻢~45fӠXe)LҖHELgR\7m7Z p <$<=Uz =?"kDj/"q\1)dcwKWPZxVL*ғےeYBH Bh2Qv *;j¤(EYlۚCD秫k.?+;v|nb{o*. A;l2};ap! R9FӡUq[Ӛ-p6.{9r$ܝ?%2 -׭^S ;tn;vRo@,!"eU=)GtlͷO~e<1l0/ 4Y؍cE\4qORQ-[AAVB )(*ʕ!t<]4SQScۓ,ّ#G'_deey&/C{ XB[Dr08ҭ;'2ux:㾡w=fI*  9 J|5*̜9%9םG{ޯxclɣF֓*q`OpxN٢Zj y{*/-y,WTDPܵU >^C9)DQ^:lz@_9N]A'Iȡae"O"$r:qY͛d̘1,"oVY.///rʒ0P#5.! g5;9sVӬY_.;HȸѣݾtKrAѱco#Z.3xr/ 5q"b[]ѧU /fvF5QpIU1~8pЃ䤔5e}ҋeL^nFE]ഓTPŸN\?j;.o5Ot"'M@IY #F\nTKDX׫[*" pj7Pd:-~(۸peEiG4cv3AQ}Z/ vέ-. $1n;؈ρhj͇h 1H}QQT7)g}T8^c^LKQVZ)FYv^t@j  VTyzθ[]bCOG*=LAѧtF,rޟڲ_v;rVLxzDwIFԎ`𴠈^6B _˘>Iq )|#Bs׀nwE wg!OC`.T,\3hҽ\IEcdfm3iJ EjB4<rOYp_r#vw|*[rslqS6 P 7@9#JH6|S܄ tqR\RY[a惰R2:\3UN[ի_|+Eۈ(i뤞$p*}P 6!td\|l%s@ OzAdPzT ^LoשyKBZ2OAPQ7ƉG#MeffZKL&v!9MhPǂ[:`T?~R J~BR_7#`d?~r Q(LhF&Ș/klHAHlOe3BN34X-<|md낤 rCM^57AFvyI SRDO5M B38#!W tzrb6[kK* @ R! wY jE?GB; Ѽ(r*EF/rF<Ow}#5\)q.l(Db͈wZWA.="qpva ]o;,䣺e=Rtd]6x*nxk&Z "iAhRa={Mvp1UD=ըqR t{I}yyh+NvI]RLeD%tlhw%iT "TM}NXH9b\=RN QuI d/KIS*u к@,&&i\-_T#<.zj:z!7,;@O,9-PHҢW *uԘ[Д$EuUOa1ȀQR*6ݨ--GFEu%A6J '7H\zڻeQ[s |_r}_+_ V^!{ F\IOMvq>q_pjlw­Ҥ!qDdP5&Z.!Ih0Io_$B80lRߍ |"Pe^#P_gGETx(ůJ-éqHC%nowX; ~r gi,6{V8 % I([hj]Mշ{JALVnpiQ-!k~Ntea1&sC:^P?'c9h߉[ɧ R ySf4 !eRj}Pm `u3uH8Z{FF8vx4/1X*f ڞ546|Rx[DkZWAśwY9ƚVS ~xQ0yV=|<VnGgtƭ]A18䥉 K߿)(0qӴZ3#'?-̘ߦ᩻wFTcj4K >p D@1'^UDwLkYs鵸rܠE5XBXc#>sJjuŭ7,0mOxf^:3Th%E}qI/hcc"R\!5G g͝peբZB6;աSrcSC02 I`Iꏾ<=#nx䐈oĂ`[q"xa1} o(3r_duyUkѹJe a2_| 2SMx8} v#|!PmZQf# l7Ԇi ,j!' K/!2VɨqHImd#J> ۊ"X]ӬA 7DרI8\!#R,czأ:÷9'Sځ)9wɢBFUL7YI}4Ԓz0MdҜP$5_٩-5/K[G?sq9m6!) JIj]$cwIyԗކʢ\I)IHG3[JG:x1?~/ڶPGI5!Q}5$T^[!SI2:TOCCBe@W.f :6ٳrSL1t_i=R[;c\OMMuiucTS3Y'w׶J 2z-Aqgg,kG)Dž_J*;GMI2f~3dFpRSU s6Tb^dEQ@)it`JY&,8rxx9W',/!~HBM"e9lϜzdCxyY0N\LUt>gQV9ώNpg$~T5J?rP#Vi?d/!L~N1d3/V(xvOkobַ[U1 D*ī+QM6IJI-?|v]j\.}sA`ݾoάM7f={_G :QFַ1;2>ՉE!HKfKsy" u҈Ů]ۦlژ⏐dٓȐe$;`ԉx w oq#͉vFF*!̛7ԸaJ֜xZ`d֪5b;f-D6AG80m@"lڷo/Oz DL.6nKǽD|t IفZH@by?\TĢrm}dggg{o 1< sW "CO ړCVu (r77 ` BwK?E .4PS 9S,;M@G'ooU7&-xiI V+?}*x/kȌy6)a--1w{( d\# $A2,ɚ}zx8$* ߼b~f/-^/xH+bSIR?rK;#quONT[`D "=;x<*{aLG=bx y҂T@GH#O 6Gj6 N]oԚWᘗ)WƜOuxB4iBIRХ; V+a’"l=*ì7[rk/"x/1A+K{H*&RIN#H,zkaB5"/b,c.sLF} hi!e[PQT'8BI+RkQ+$8&McǏf [ֳ8:RQgĩpkkkGIENDB`admsasha-qnetstatview-91a4996de9e4/images/qnetstatview.ico000066400000000000000000000353561411134372600236670ustar00rootroot00000000000000 h6  00 %F(    LLLLLLEDD+EC@50;j=NzJ+5_DFDA4?>>/('')))hgggffDzSS񳩧A@@#DCClllkjj¼ǩqlìýIHHLLLCDI;U֐MZӓ[jA Nu4QLԑOynj.B T̈DҕYoC 3Ox5r3ٚYŋ}pDa5Q#GJ\$^20OՍMq+eΉGܷϯ距赛㲗ϝ~h:]$T)tr_ZԈGÛ쿛t=Ո2 $:4pm(JwݞqP!SJ 2Ci(@ݟqɭȯ֕lT#EpNw 4a$DwBkt@kX!F%x +( @   ,*)FFFLKK344.+,,B+,,A+,,A,,'@ hR9± J J4Ri,-'@+,,A+,,A+,,B(((; XXXQSSqmm}}}}}}~|[d%HH&Xc~|}}}}~~daa .---WXXDGGBD1///XXXFGGTW-222]]]ZZZjiiHtrr[trrZtrrZvsoZLjd1YP(EbnwspYtrrZtrrZtrr[dccL333 ???MXgX[c / R3fU|lgJ<9J_6kOe-v@ՀI}Fo:[(Ag#0 5_!F7R\ ԌWfdaketΉ]HXxB}0n& Eu|AØ޼ͤϦԭڵسݺœk?l%!b4]JuԊQҪ޹۳ڰخ׬׫حخڱܶ߻ֳzOm%) r2fEO~@֫էҢОϜΛΛϛОѡԥ֫ڲ߻԰mB[ G8k'ޜeqϝ͗ʒȎƋƊƊƋȍʒ̖Ϝϟթ޶šJ"5 ?)<pQg֍Q|Apʐ҂}zyyzumȍzΈ\l# J1 k$ϋR\|?uwrmihgiڏJb$шHt~|z>a$ٝlG ')?NE,};s:TWg*Sc^\\]Wi(T^!ՌIuyp4a&םhk@MU68TQNЅF`'OONp-WaeghXXOP^!VmהUmȒχYeyE]X d͇JTIIITUrvy{ޜZMIIHj*_XEvؓds%J`Z hˆILB A MՔSyĆyvFB C C C D h)ɅAѐMƌPΊZx)GY U\׎M\"Ii,ؙX}ʼnɐ٤nV LFv<u;v;v<IOg'^#b*}Mv&>RM?ֈDx9ޙPp€Ƌ͘ǘYpKwSwSqLe=S'xAGq;s<j4[&sCj^EPBv0ҿCяIvɐԧڳֲ규嬕歕欕嬕䫓ޥΗzuOHp7p7u<]0T2s"Pc֑Qu1}޻ݾ̰éɮêڨl8R ̅L> =RL<Ӂ>֒R鴌ڽռջԻӹռзεи繖ωEk9v"SMN5]Z˫ֹ촀ՈN=? ZKDh#rԲҮcP!q),JMF,j&~uU%̓%:b .BLC$^ە`Ҵέԋ[K&.B3A:J^h)ؒ`蹕ϵͱ浒Ҋ\\'ğ8f.]<3@EN |[c(b(VF ~4H" Y N<x(9??(0` $  [[o<dfaiaiaiI[ @@@KJJ1112%%%V$$$W$$$W$$$W$$$W$$$W%% Urr2 S T T S. W##Y$$$V$$$W$$$W$$$W$$$W$%%W M )))XXXTUU`__kiilkkljjljjljjljjnli@J}?EE@=InkiljkljjljjljjlkkkiiOOO:[[[XYYILLwssoyYaa[hvfcc=cddVWWADD~~%(}oll=aaaVVV?@@15rqq=^^^[[[SSSmllْגגגגהWxgrri Suᔏגגגגג׍baa !!(]]]___cccYYYMNN%LLL%LMM%LMM%LMM%LMM%NLG$+U0mثAMD0\!Ar@OMH#LMM%LMM%LMM%LMM%LLL%MNN%TTT<<<VVVVXZggkv¶BDFPUXdefwĿ|xxACC  1$LFoH1nyydbOZ9'5b 82f&M1=ɩL]%k4p9n8g1X#E2i"Ap1 T"1 q+L:Qs8ݐYefb_]]]_ڍZm:Cv'Ay )b(9QтH밀y^ZQdo[oyĘֲ۹귎xH?e # O Bx10Bj+豁ݺ߾ˣկԮ۸߼ٴ߽޽嬂[*{(2iM 75I~Aɟߺ޹ܶܵܵ۳۳ܵܶݷ޹߻ɣpA-7r 3S8&JӅHѨߺܵڲٯ׭׫֩֨ըը֪֩׬خٰ۴ݷ߻ӮvH+.b ;5G{<Ӫد֫էӤҢѠПОϝϝОПѡӣԦթ׭ٱܵ޻Ϫj;t$Du3Dfi$곁ݗ`ԥѠϝ͙̗˕ʓʓʒʒʓ˔̖͘ΛОҢԧ׬ٱܶO"YEK@&U hڗ`ݖ]ϜΚ̖ʒȎnjƊňŇććŇʼnƋȍɐ˔͘Ϝ͜ӥ׬۳ߺݜq2 3d|6Hwz8um0q͖ɏƋćÄ~}|{{|~}}ÅƉȍʒtԤϡ급Śd7d!GCV fF\ΆJÇņ|yvsrqppqsWw8ّQxÃƉwr˅Kf)؜hޟs1 - TDUHNo)۟j`$Za$ޛ\vurnkhfeeefdx6X_"̓Cgk] Xq7깋S'S Cw7MՈHƅNUWV`$o1Thc`]\[[[\I\ WVf(̈́Al{ĂdZV_$|zMp !IF Uܘ]l4QSSRPv3][[\]___^{6RSRVn.SqxژXo3w<ٝeݚl+! 9Vz6LG^ۜd]#NOOONYۏD]cfhjjjhu4MOONNe'_p_b{njК85QDNH,e֜dSJJJJJH] ^nqsuvvoi,IJJJJL̄>feוS~BєYƌBCaIOH2j"ә`LFFFFF\!ՒPrx|ÃĄmUE FFFFFPՍDY֓Nx:q5ܥjIIfJOH1j"Ҙ_HB B A ~@ OޞZz~ƒĆƊ}rx͓YFB B B B B B A Oi)Ȅ@\ՖUHާtIJdGPI)dߣgUv;x=Ii,חVx‚ćnjʒ{b,INLy>x=y>y>y>y>x=KN^ w3]"r5X ڠmCHXCQK\k~;Tw5ߜVp}„Ɗɑ̗跄b/w> {A}D}D{Bx? t;q9p8q9s;\"HIXu=p8X!ڛi9=A4OM UYq5ȅ?ks{ƒƋʓϜҤף|{ZÆfʌn͏q͎qʋnÅfzXjDU+xBu? }Fj6i5i5j6h3n7׏^,* '?NKO|օBF{8WsƌΜժٱڴ䪓䩒䩒䩒䩒䩒䩒䩒㨑ݣ͔x|XR&o8l5m6l6o8‹RsDz#OQLBl#ݠbs/{9qʑ֫ݹ޼޼޼ڹɬ긟贛贛贛贛鴛鶝鵜鴜궝鵝ު]Q~>}>PݠgO#di PLV \ˉFh"؞gݺػǭīǭȭӶϳǭڨj2H{4ُ\2C-|'PPLat/ix4嬄ָͳԺҸзӹּε˲˲˲͵巕p*]]/x"EPLTޖYgꯀģήվ־սսսվվվ沇ޖNՈU4T.9OLKJcqxƢͮϰپίZeJx"g+OMLzp-Ƙֻؾؾٿ~n^/*@aMLMt3ٷѦ|g70` <LLKLo.ڵa02l!%Y HJJI}`ߜfճϧڔcP0q$YIKGOOq2wַѯrg3= ɒ.^n% *JUFEmN f'ԉS~ġӶٿٿб|ЃP]'A ț2v-#T"n'GIB@MCIRսZ`$_$XM֭B93S.q(y*@>@>;":.82726.5#3/]q*??????????admsasha-qnetstatview-91a4996de9e4/images/qnetstatview.png000066400000000000000000000041441411134372600236700ustar00rootroot00000000000000PNG  IHDR szzsRGBgAMA a pHYsodIDATXGWklff/^qbl/6&l%R?\DUUZUR&FJS&(i@() bwfX~^{׻;;33&>Ƨ2_| l":~־X&FSZdyyUisklm,cbZDw8:zF"co`|0~kg+є,R'w'Ey*-q^S$MKۂm{ե~ݶW5۽˸/$jb)| DIFV29 +e%LIUYewofW7G5x6f:> XYB"#C$9EQV V^Q [YĻ<܂pw6:s SC e>@(8Nva#ő1:&J E14:%G}*;=P_һSPX5Lz9\8AX.529vpԿDp( &rTzpz36j4HZu˙kWo ~]b{lv,~z*`W7ɨjY}z 8kD t&$.뼊m'E(Y*[gm*Y '?=޾0&ƈIшlB*q`CmRPT -]ʶ|̳ dN,s,L0+"F[dp`?.FӆYQml *J1MR]P+G&xa LU0X51-0˚`8ÃUP.3Wo㣿Ko x;yCɫCןnx:~w'*eJ v. )e\& oFc^ 30YQ77ozN:ni;=Az'.xH5UX]49W+X(̾},kUTIy>Ѿ;տZ| :Eٙ'Z\K-[UjTz;~܊W1܉lj^08r\ 糘H1v/)"'TALD)6Ȳ>@IFBZЛjt-ݾ!;؟G"￷: \[-x'.r?ӯ )Lt|e8 }*(3W? rRj~IENDB`admsasha-qnetstatview-91a4996de9e4/langs/000077500000000000000000000000001411134372600202605ustar00rootroot00000000000000admsasha-qnetstatview-91a4996de9e4/langs/qnetstatview_it.ts000066400000000000000000000522771411134372600240770ustar00rootroot00000000000000 DialogPasswordPrompt Password prompt Prompt Password Continue Continua Cancel Cancella <html><head/><body><p>This action requires &quot;root&quot; user privileges. Enter his password and click &quot;Continue&quot; or click &quot;Cancel&quot; to cancel the transition to the user &quot;root&quot;</p></body></html> <html><head/><body><p>Questa azione richiede &quot;root&quot;privilegi dell'utente.Inserire la propria password e cliccare su &quot;Continua&quot;"root"o cliccare &quot;Cancella&quot; per annullare la transizione all'utente user&quot;root&quot;</p></body></html> Password: Password: FormAbout QNetStatView QNetStatView License: GPLv3+ Licenza: GPLv3+ Visit web site Visita sito web Close Chiudi About Informazioni su Version: Versione: Date build: Data di rilascio: All rights reserved. Tutti i diritti riservati. MainWindow prot prot local_address indirizzo_locale rem_address rem_address state stato pid pid program programm programma cmdline ком_строка &File &File &Help &Aiuto &View &Visualizza &Update speed &Velocità di aggiornamento &Options &Opzioni &Prot &Prot &State &Stato &Exit &Esci &About &Riguardo &Refresh Now &Aggiorna Ora &1 second &1 secondo &3 second &3 secondi &5 second &5 secondi &Pause &Pausa &Save As... &Salva Come... &Copy to clipboard &Copia &Copy &Copia &Restart as Root &Riavvia come root &Resolve Addresses &Risolvi Indirizzi &TCP &TCP &UDP &UDP T&CP6 T&CP6 U&DP6 U&DP6 &CLOSE &CHIUDI &ESTABLISHED STABILITA &LISTEN IN ASCOLTO &All other &Tutti gli altri &Utilite for kill... &Utility per killare... TextLabel Etichetta di Testo Filter: Filtro: F1 F1 F5 F5 Alt+1 Alt+1 Alt+2 Alt+2 Alt+3 Alt+3 Alt+0 Alt+0 Kill process Killa processo Close connection Chiudi connessione This function is not implemented for this OS Questa funzione non è implementata per questo OS Only ESTABLISHED Solo STABILITA Only root can do this Solo root può fare questo Copy to clipboard Copia First select the line for copying Prima selezionare la riga per la copia Line was successfully copied to the clipboard La riga è stata copiata con successo negli appunti Save to file Salva su file All Files (*.*) Tutti i File (*.*) local address indirizo locale rem address indirizzo rem Properties... Proprietà... close connection connessione chiusa Your OS does not support close connection Il tuo sistema Operativo non supporta una stretta connessione Restart as root Riavvia come root Application startup failed. The password may have been typed incorrectly or you is not in the sudoers file. Restart as root canceled Avvio dell'applicazione non riuscito. La password potrebbe essere stata digitata in modo errato o non si è nel file sudoers. Riavvio come root annullato Count connections: Conta connessioni: Count LISTEN: Conta in ASCOLTO: Count ESTABLISHED: Conta STABILITA: ProcessExplorer Process explorer Esplora processi Close Chiudi General Generale PPid: PPid Command line: Linea di comando: Status: Stato: Current directory: Directory corrente: Path: Percorso: Pid: Pid: Environment Condizioni Files File Handle Manipola Path Percorso Pos Pos Flags Flags QObject You cannot kill this process Non puoi killare questo processo Killing of process was not successful L'arresto del processo non ha avuto successo Your OS does not support killProcess Il tuo sistema Operativo non supporta killProcess set utilities for kill connections imposta utility per killare connessioni Usage: qnetstatview [options] Utilizzo: qnetstatview [opzioni] Shows detailed listings of all TCP and UDP endpoints Mostra elenchi dettagliati di tutti gli endpoint TCP e UDP Displays this help. Mostra questo aiuto. Displays version information. Mostra informazioni di versione. Run as root. Avvia come root. Restart as root Riavvia come root Application startup failed. The password may have been typed incorrectly or you is not in the sudoers file. Restart as root canceled Avvio dell'applicazione non riuscito. La password potrebbe essere stata digitata in modo errato o non si è nel file sudoers. Riavvio come root annullato setupUtiliteKill Kill program: Kill programm: Killare programma: Apply Applica Args for program %REMOTE_IP% - Remote IP %REMOTE_PORT% - Remote PORT %LOCAL_IP% - Local IP %LOCAL_PORT% - Local PORT Argomenti per il programma %REMOTE_IP% - IP REMOTO %REMOTE_PORT% - PORTA REMOTA %LOCAL_IP% - IP LOCALE %LOCAL_PORT% - PORTA LOCALE Utilite for close connection Utility per una connessione vicina Cancel Cancella admsasha-qnetstatview-91a4996de9e4/langs/qnetstatview_pl.ts000066400000000000000000000524221411134372600240660ustar00rootroot00000000000000 DialogPasswordPrompt Password prompt Podaj hasło Continue Dalej Cancel Cofnij <html><head/><body><p>This action requires &quot;root&quot; user privileges. Enter his password and click &quot;Continue&quot; or click &quot;Cancel&quot; to cancel the transition to the user &quot;root&quot;</p></body></html> Żądana akcja wymaga uprawnień administratora. Podaj hasło i naciśnij "Dalej" lub naciśnij "Cofnij" aby anulować. Password: Hasło: FormAbout QNetStatView License: GPLv3+ Licencja: GPLv3+ Visit web site Strona domowa Close Zamknij About O programie Version: Wersja: Date build: Data kompilacji: All rights reserved. Wszelkie prawa zastrzeżone. MainWindow prot protokół local_address adres lokalny rem_address usuń adres state status pid ID procesu (PID) program programm program cmdline wiersz poleceń &File &Plik &Help &Pomoc &View &Widok &Update speed &Częstotliwość aktualizacji &Options &Ustawienia &Prot &Protokół &State &Status &Exit &Wyjście &About &O programie &Refresh Now &Odśwież &1 second &1 sekunda &3 second &3 sekundy &5 second &5 sekund &Pause &Pauza &Save As... &Zapisz jako... &Copy to clipboard &Kopiuj &Copy &Kopiuj &Restart as Root &Uruchom ponownie jako administrator &Resolve Addresses &Zezwalaj na tłumacznie adresów &TCP &UDP T&CP6 U&DP6 &CLOSE &ZAMKNIĘTE &ESTABLISHED &USTANOWIONE &LISTEN &NASŁUCHUJĄCE &All other &Pozostałe &Utilite for kill... &Narzędzie do zamykania połączeń ... TextLabel Filter: Filtr: F1 F5 Alt+1 Alt+2 Alt+3 Alt+0 Kill process Zabij proces Close connection Zakończ połączenie This function is not implemented for this OS Ta funkcja nie jest zaimplementowana dla tego systemu operacyjnego Only ESTABLISHED Tylko USTANOWIONE Only root can do this Dla tego działania wymagane są uprawnienia administratora Copy to clipboard Kopiuj First select the line for copying Najpierw wybierz wiersz do skopiowania Line was successfully copied to the clipboard Ciąg został pomyślnie skopiowany do schowka Save to file Zapisz do pliku All Files (*.*) Wszystkie pliki (*.*) local address adres lokalny rem address adres zdalny Properties... Właściwości... close connection Zakończ połączenie Your OS does not support close connection Twój system operacyjny nie obsługuje zamykania połączeń Restart as root Uruchom ponownie jako administrator Application startup failed. The password may have been typed incorrectly or you is not in the sudoers file. Restart as root canceled Uruchomienie aplikacji nie powiodło się. Być może hasło zostało wprowadzone nieprawidłowo lub nie ma Cię w pliku sudoers. Przerwano ponowne uruchomienie aplikacji na prawach administratora. Count connections: Liczba połączeń: Count LISTEN: Liczba NASŁUCHUJĄCYCH: Count ESTABLISHED: Liczba USTANOWIONYCH: ProcessExplorer Process explorer Przeglądarka procesów Close Zamknij General Ogólne PPid: Command line: Wiersz poleceń: Status: Status: Current directory: Katalog bieżący: Path: Ścieżka: Pid: Environment Środowisko Files Pliki Handle Deskryptor Path Ścieżka Pos Pozycja Flags Flagi QObject You cannot kill this process Nie możesz zabić tego procesu Killing of process was not successful Próba zabicia procesu nie powiodła się Your OS does not support killProcess Twój system operacyjny nie obsługuje zabijania procesu set utilities for kill connections Ustal narzędzia do zabijania połączenia Usage: qnetstatview [options] Использование: qnetstatview [опции] Zastosowanie: qnetstatview [opcje] Shows detailed listings of all TCP and UDP endpoints Wyświetla szczegółową listę wszystkich otwartych połączeń TCP / IP i UDP Displays this help. Pokazuje tę pomoc. Displays version information. Pokazuje wersję programu. Run as root. Uruchom jako administrator. Restart as root Uruchom ponownie na prawach administratora Application startup failed. The password may have been typed incorrectly or you is not in the sudoers file. Restart as root canceled Uruchomienie aplikacji nie powiodło się. Być może hasło zostało wprowadzone nieprawidłowo lub nie ma Cię w pliku sudoers. Przerwano ponowne uruchomienie aplikacji na prawach administratora setupUtiliteKill Kill program: Kill programm: Zabij program: Apply Zatwierdź Args for program %REMOTE_IP% - Remote IP %REMOTE_PORT% - Remote PORT %LOCAL_IP% - Local IP %LOCAL_PORT% - Local PORT Argumenty dla programu %REMOTE_IP% - Zdalne IP %REMOTE_PORT% - Zdalny port %LOCAL_IP% - Lokalne IP %LOCAL_PORT% - Lokalny port Utilite for close connection Narzędzie do zamykania połączeń Cancel Anuluj admsasha-qnetstatview-91a4996de9e4/langs/qnetstatview_ru.ts000066400000000000000000000550511411134372600241020ustar00rootroot00000000000000 DialogPasswordPrompt Password prompt Запрос пароля Continue Продолжить Cancel Отмена <html><head/><body><p>This action requires &quot;root&quot; user privileges. Enter his password and click &quot;Continue&quot; or click &quot;Cancel&quot; to cancel the transition to the user &quot;root&quot;</p></body></html> Эта операция требует привилегий root пользователя. Введите свой пароль и нажмите кнопку "Продолжить" или нажмите кнопку "Отмена", чтобы отменить переход к пользователю "root" Password: Пароль: FormAbout QNetStatView License: GPLv3+ Лицензия: GPLv3+ Visit web site Посетить веб сайт Close Закрыть About О программе Version: Версия: Date build: Дата сборки: All rights reserved. Все права защищены. MainWindow prot протокол local_address лок_адрес rem_address удал_адрес state статус pid ид_процесса program programm программа cmdline ком_строка &File &Файл &Help Справ&ка &View &Просмотр &Update speed Обновление &скорости &Options &Настройки &Prot &Протокол &State &Статус &Exit В&ыход &About &О программе &Refresh Now &Обновить &1 second &1 секунда &3 second &3 секунды &5 second &5 секунд &Pause &Пауза &Save As... &Сохранить как... &Copy to clipboard &Копировать в буфер обмена &Copy &Копировать &Restart as Root &Перегрузиться под root &Resolve Addresses &Разрешать адреса &TCP &UDP T&CP6 U&DP6 &CLOSE &CLOSE &ESTABLISHED &LISTEN &All other &Все прочие &Utilite for kill... &Утилита для закрытия подключения... TextLabel Filter: Фильтр: F1 F5 Alt+1 Alt+2 Alt+3 Alt+0 Kill process Убить процесс Close connection Закрыть подключение This function is not implemented for this OS Эта функция не реализована для данной ОС Only ESTABLISHED Только ESTABLISHED Only root can do this Только root может сделать это Copy to clipboard Копировать в буфер обмена First select the line for copying Сперва выберите строчку для копирования Line was successfully copied to the clipboard Строка успешно скопирована в буфер обмена Save to file Сохранить в файл All Files (*.*) Все файлы (*.*) local address локальный адрес rem address удалённый адрес Properties... Свойства... close connection закрыть подключение Your OS does not support close connection Ваша OS не поддерживает закрытие подключения Restart as root Перезапустить как root Application startup failed. The password may have been typed incorrectly or you is not in the sudoers file. Restart as root canceled Сбой запуска приложения. Возможно, пароль был введен неправильно или вы не находитесь в sudoers файле. Перезапуск как root отменен Count connections: Количество подключений: Count LISTEN: Количество LISTEN: Count ESTABLISHED: Количество ESTABLISHED: ProcessExplorer Process explorer Обозреватель процесса Close Закрыть General Основное PPid: Command line: Командная строка: Status: Статус: Current directory: Текущая директория: Path: Путь: Pid: Environment Окружающая среда Files Файлы Handle Дескриптор Path Путь Pos Позиция Flags Флаги QObject You cannot kill this process Вы не можете убить этот процесс Killing of process was not successful Убийство процесса не прошло успешно Your OS does not support killProcess Ваша OS не поддерживает убиение процесса set utilities for kill connections Установите утилиту для убийтсва подключения Usage: qnetstatview [options] Использование: qnetstatview [опции] Usage: qnetstatview [options] Shows detailed listings of all TCP and UDP endpoints Отображает детальный список всех открытых TCP/IP и UDP соединений Displays this help. Показать эту справку. Displays version information. Показать версию программы. Run as root. Запустить от root. Restart as root Перезапустить как root Application startup failed. The password may have been typed incorrectly or you is not in the sudoers file. Restart as root canceled Сбой запуска приложения. Возможно, пароль был введен неправильно или вы не находитесь в sudoers файле. Перезапуск как root отменен setupUtiliteKill Kill program: Kill programm: Утилита для закрытия подключения: Apply Применить Args for program %REMOTE_IP% - Remote IP %REMOTE_PORT% - Remote PORT %LOCAL_IP% - Local IP %LOCAL_PORT% - Local PORT Аргументы для программы %REMOTE_IP% - Удаленный IP %REMOTE_PORT% - Удаленный порт %LOCAL_IP% - Локальный IP %LOCAL_PORT% - Локальный порт Utilite for close connection Утилита для закрытия подключения Cancel Отмена admsasha-qnetstatview-91a4996de9e4/langs/qnetstatview_uk_UA.ts000066400000000000000000000547241411134372600244660ustar00rootroot00000000000000 DialogPasswordPrompt Password prompt Запит пароля Continue Продовжити Cancel Відміна <html><head/><body><p>This action requires &quot;root&quot; user privileges. Enter his password and click &quot;Continue&quot; or click &quot;Cancel&quot; to cancel the transition to the user &quot;root&quot;</p></body></html> Ця операція вимагає привілей root користувача. Введіть свой пароль і натисніть кнопку "Продовжити" чи натисніть кнопку "Відміна", щоб відмінити перехід до користувача "root" Password: Пароль: FormAbout QNetStatView License: GPLv3+ Ліцензія: GPLv3+ Visit web site Відвідати веб сайт Close Закрити About Про програму Version: Версія: Date build: Дата збірки: All rights reserved. Усі права захищені. MainWindow prot протокол local_address лок_адрес rem_address відд_адрес state статус pid ід_процеса program programm програма cmdline ком_рядок &File &Файл &Help &Довідка &View &Перегляд &Update speed Швидкість &оновлення &Options &Налаштування &Prot &Протокол &State &Статус &Exit В&ихід &About &Про програму &Refresh Now &Оновити &1 second &1 секунда &3 second &3 секунди &5 second &5 секунд &Pause &Пауза &Save As... &Зберегти як... &Copy to clipboard &Копіювати до буфера обміну &Copy &Копировать &Restart as Root &Перезагрузитись як root &Resolve Addresses &Резолвінг адрес &TCP &UDP T&CP6 U&DP6 &CLOSE &CLOSE &ESTABLISHED &LISTEN &All other &Всі інші &Utilite for kill... &Утиліта для закриття підключення... TextLabel Filter: Фільтр: F1 F5 Alt+1 Alt+2 Alt+3 Alt+0 Kill process Убити процес Close connection Закрити підключення This function is not implemented for this OS Ця функція не реалізована для даної ОС Only ESTABLISHED Тільки ESTABLISHED Only root can do this Тільки root може зробити це Copy to clipboard Копіювати до буферу обміну First select the line for copying Спершу виберіть рядок для копіювання Line was successfully copied to the clipboard Рядок успішно скопійована до буферу обмену Save to file Зберегти у файл All Files (*.*) Усі файли (*.*) local address локальна адреса rem address віддалена адреса Properties... Властивості... close connection закрити підключення Your OS does not support close connection Ваша OS не поддерживает закрытие подключения Restart as root Перезапустить как root Application startup failed. The password may have been typed incorrectly or you is not in the sudoers file. Restart as root canceled Сбой запуска приложения. Возможно, пароль был введен неправильно или вы не находитесь в sudoers файле. Перезапуск как root отменен Count connections: Кількість підключень: Count LISTEN: Кількість LISTEN: Count ESTABLISHED: Кількість ESTABLISHED: ProcessExplorer Process explorer Оглядач процесів Close Закрити General Основне PPid: Command line: Командний рядок: Status: Статус: Current directory: Поточна тека: Path: Шлях: Pid: Environment Середовище Files Файли Handle Дескриптор Path Шлях Pos Позиція Flags Флаги QObject You cannot kill this process Ви не можете убити цей процес Killing of process was not successful Вбивство процеса не вдалось Your OS does not support killProcess Ваша OS не підтримує вбивство процеса set utilities for kill connections Встановіть утиліту для вбивства підключення Usage: qnetstatview [options] Використання: qnetstatview [опції] Usage: qnetstatview [options] Shows detailed listings of all TCP and UDP endpoints Відображає детальний список всіх відкритих TCP/IP і UDP з'єднань Displays this help. Показати йю довідку. Displays version information. Показати версію програми. Run as root. Запустити від root. Restart as root Перезагрузитись як root Application startup failed. The password may have been typed incorrectly or you is not in the sudoers file. Restart as root canceled Збій запуска додатка. Можливо, пароль було введено невірно чи ви не знаходитесь в sudoers файлі. Перезапуск як root скасовано setupUtiliteKill Kill program: Kill programm: Утиліта для закриття з'єднання: Apply Застосувати Args for program %REMOTE_IP% - Remote IP %REMOTE_PORT% - Remote PORT %LOCAL_IP% - Local IP %LOCAL_PORT% - Local PORT Аргументи для програми %REMOTE_IP% - Віддалений IP %REMOTE_PORT% - Віддалений порт %LOCAL_IP% - Локальний IP %LOCAL_PORT% - Локальний порт Utilite for close connection Утиліта для закриття з'єднання Cancel Відміна admsasha-qnetstatview-91a4996de9e4/main.cpp000066400000000000000000000105741411134372600206130ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include #include #include "mainwindow.h" #include "config_qnetstatview.h" #include "DialogPasswordPrompt.h" #if defined(Q_OS_WIN) bool SetDebugPrivileges(){ TOKEN_PRIVILEGES tp; LUID luid; HANDLE hToken; if(!OpenProcessToken(GetCurrentProcess(),TOKEN_READ|TOKEN_ADJUST_PRIVILEGES,&hToken)) {return false;} if(!LookupPrivilegeValueA(NULL,"SeDebugPrivilege",&luid)) {CloseHandle(hToken);return false;} tp.PrivilegeCount=1; tp.Privileges[0].Luid=luid; tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED; if(!AdjustTokenPrivileges(hToken,FALSE,&tp,0,NULL,NULL)) {CloseHandle(hToken);return false;} CloseHandle(hToken); return true; } #endif void printUsage(){ qInfo("%s",qPrintable(QObject::tr("Usage: qnetstatview [options]"))); qInfo("%s",qPrintable(QCoreApplication::applicationName() +" - "+QObject::tr("Shows detailed listings of all TCP and UDP endpoints"))); qInfo() << ""; qInfo() << "Options:"; qInfo("%s",qPrintable("-h, --help "+QObject::tr("Displays this help."))); qInfo("%s",qPrintable("-v, --version "+QObject::tr("Displays version information."))); qInfo("%s",qPrintable("--run-as-root "+QObject::tr("Run as root."))); } void runAsRoot(){ QString appForEnterRoot = ""; QStringList possibleApps {"kdesu5","kdesu","gksu","pkexec"}; for (QString app:possibleApps){ if (QStandardPaths::findExecutable(app)!=""){ appForEnterRoot=app; break; } } if (appForEnterRoot=="pkexec"){ system(QString("pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY "+QApplication::applicationDirPath()+"/"+qAppName()+" ").toStdString().data()); exit(0); } if (appForEnterRoot=="kdesu5" or appForEnterRoot=="kdesu"){ QProcess::startDetached(appForEnterRoot+" "+QApplication::applicationDirPath()+"/"+qAppName()+" 2> /dev/null &"); exit(0); } if (appForEnterRoot=="gksu"){ QProcess::startDetached("gksu -u root "+QApplication::applicationDirPath()+"/"+qAppName()+" 2> /dev/null &"); exit(0); } DialogPasswordPrompt ps; if (ps.exec()){ QString password = ps.getPassword(); int code = system(QString("echo \""+password+"\" | sudo -S -b "+QApplication::applicationDirPath()+"/"+qAppName()+" &> /dev/null").toStdString().c_str()); if (code!=0){ QMessageBox::critical(nullptr,QObject::tr("Restart as root"),QObject::tr("Application startup failed. The password may have been typed incorrectly or you is not in the sudoers file. Restart as root canceled")); } exit(0); } } int main(int argc, char *argv[]) { QApplication app(argc, argv); QCoreApplication::setOrganizationName("DanSoft"); QCoreApplication::setOrganizationDomain("dansoft.ru"); QCoreApplication::setApplicationVersion(QNETSTATVIEW_VERSION); QCoreApplication::setApplicationName("QNetStatView"); QDir dirConfig(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation)); if (dirConfig.exists()==false) dirConfig.mkpath(dirConfig.path()); QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF8")); QTranslator translator; QString locale = QLocale::system().name(); translator.load(QString(PATH_USERDATA)+QString("/langs/qnetstatview_") + locale); app.installTranslator(&translator); //set translator for default widget's text (for example: QMessageBox's buttons) QTranslator qtTranslator; qtTranslator.load("qt_"+locale,QLibraryInfo::location(QLibraryInfo::TranslationsPath)); app.installTranslator(&qtTranslator); #if defined(Q_OS_WIN) SetDebugPrivileges(); #endif for (QString arg:QCoreApplication::arguments()){ if (arg=="--help" or arg=="-h"){ printUsage(); return 0; } if (arg=="--version" or arg=="-v"){ qInfo("QNetStatView: %s",QNETSTATVIEW_VERSION); return 0; } if (arg.toLower()=="--run-as-root"){ runAsRoot(); return 0; } } MainWindow window; window.resize(800,600); window.show(); return app.exec(); } admsasha-qnetstatview-91a4996de9e4/mainwindow.cpp000066400000000000000000000475141411134372600220470ustar00rootroot00000000000000#include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "FormAbout.h" #include "ProcessExplorer.h" #include "DialogPasswordPrompt.h" #include "config_qnetstatview.h" Q_DECLARE_METATYPE(QVector) class elideLeftItemC : public QStyledItemDelegate { virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { QStyleOptionViewItem opt = option; opt.textElideMode=Qt::ElideLeft; QStyledItemDelegate::paint(painter, opt, index); } } elideLeftItem; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); qRegisterMetaType < QVector > ("QVector"); // date start 19.02.2013 this->setWindowTitle(QString("QNetStatView %1 (%2)").arg(QNETSTATVIEW_VERSION).arg(QNETSTATVIEW_DATEBUILD)); this->setWindowIcon(QIcon(QString(PATH_USERDATA)+"/images/qnetstatview.png")); conf = new QSettings(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation)+"/qnetstatview.ini", QSettings::IniFormat); conf->setPath(QSettings::IniFormat, QSettings::UserScope, QDir::currentPath()); // Создание ContextMenu initPopupMenu(); connect(ui->tableWidget->horizontalHeader(),&QHeaderView::sectionClicked,this,&MainWindow::tableWidget_sectionClicked); connect(ui->tableWidget, &QWidget::customContextMenuRequested, this, &MainWindow::popupCustomMenu ); connect(ui->actionCopy,&QAction::triggered,this,&MainWindow::CopyToClipboard); connect(ui->actionSave_As,&QAction::triggered,this,&MainWindow::CopyToFile); connect(ui->actionAbout,&QAction::triggered,this,&MainWindow::showAbout); connect(ui->actionRefresh,&QAction::triggered,this,&MainWindow::timerUpdate_timeout); connect(ui->actionRestart_as_Root,&QAction::triggered,this,&MainWindow::restartAsRoot); connect(ui->actionExit,&QAction::triggered,this,&QWidget::close); connect(ui->actionTCP,&QAction::triggered,this,&MainWindow::timerUpdate_timeout); connect(ui->actionTCP6,&QAction::triggered,this,&MainWindow::timerUpdate_timeout); connect(ui->actionUDP,&QAction::triggered,this,&MainWindow::timerUpdate_timeout); connect(ui->actionUDP6,&QAction::triggered,this,&MainWindow::timerUpdate_timeout); connect(ui->actionESTABLISHED,&QAction::triggered,this,&MainWindow::timerUpdate_timeout); connect(ui->actionLISTEN,&QAction::triggered,this,&MainWindow::timerUpdate_timeout); connect(ui->actionCLOSE,&QAction::triggered,this,&MainWindow::timerUpdate_timeout); connect(ui->actionAllOther,&QAction::triggered,this,&MainWindow::timerUpdate_timeout); connect(ui->actionUtilite_for_kill,&QAction::triggered,this,&MainWindow::showSetupKill); connect(ui->actionResolve_Addresses,&QAction::triggered,this,&MainWindow::Resolve_Addresses); connect(ui->action1_second,&QAction::triggered,this,&MainWindow::timer_speed1); connect(ui->action3_second,&QAction::triggered,this,&MainWindow::timer_speed3); connect(ui->action5_second,&QAction::triggered,this,&MainWindow::timer_speed5); connect(ui->actionPause,&QAction::triggered,this,&MainWindow::timer_pause); ui->tableWidget->clear(); ui->tableWidget->setRowCount(0); // init tableWidget ui->tableWidget->verticalHeader()->hide(); ui->tableWidget->setColumnCount(8); ui->tableWidget->sortByColumn(1); ui->tableWidget->setColumnHidden(0,true); ui->tableWidget->setItemDelegateForColumn(6, &elideLeftItem); ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "" << tr("prot") << tr("local address") << tr("rem address") << tr("state") << tr("pid") << tr("program") << tr("cmdline")); ui->tableWidget->horizontalScrollBar()->setMaximum(ui->tableWidget->columnCount()); ui->tableWidget->setContextMenuPolicy(Qt::ActionsContextMenu); ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableWidget->setContextMenuPolicy( Qt::CustomContextMenu ); ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); // default value ui->tableWidget->setColumnWidth(1,41); ui->tableWidget->setColumnWidth(2,160); ui->tableWidget->setColumnWidth(3,160); ui->tableWidget->setColumnWidth(5,45); ui->tableWidget->setColumnWidth(7,345); #if defined(Q_OS_LINUX) || defined(Q_OS_UNIX) if (getuid()==0){ ui->actionRestart_as_Root->setVisible(false); } #elif defined(Q_OS_WIN) ui->actionRestart_as_Root->setVisible(false); #endif netstat = new cNetStat(); connect(netstat,SIGNAL(endReadStat(QVector)),this,SLOT(drawTable(QVector))); sortcol=2; // Загрузка services QFile file(":services"); if (file.open(QIODevice::ReadOnly | QIODevice::Text)){ QTextStream in(&file); while (!in.atEnd()) { QStringList service = in.readLine().split(QRegExp("\\s+")); if (service.size()<2) continue; ServicesCache[service.at(1).toUpper()]=service.at(0); } file.close(); } timerUpdate_timeout(); timerUpdate = new QTimer(this); connect (timerUpdate,SIGNAL(timeout()),this,SLOT(timerUpdate_timeout())); timerUpdate->start(3000); // restore from config this->resize(conf->value("form/width",this->width()).toInt(),conf->value("form/height",this->height()).toInt()); for (int tableCol=1;tableColtableWidget->columnCount();tableCol++){ ui->tableWidget->setColumnWidth(tableCol,conf->value("tableWidget/column"+QString::number(tableCol),ui->tableWidget->columnWidth(tableCol)).toInt()); } ui->actionResolve_Addresses->setChecked(conf->value("view/resolve","false").toBool()); ui->actionTCP->setChecked(conf->value("view/TCP","true").toBool()); ui->actionUDP->setChecked(conf->value("view/UDP","true").toBool()); ui->actionTCP6->setChecked(conf->value("view/TCP6","true").toBool()); ui->actionUDP6->setChecked(conf->value("view/UDP6","true").toBool()); ui->actionLISTEN->setChecked(conf->value("view/status_listen","true").toBool()); ui->actionESTABLISHED->setChecked(conf->value("view/status_established","true").toBool()); ui->actionCLOSE->setChecked(conf->value("view/status_close","true").toBool()); ui->actionAllOther->setChecked(conf->value("view/status_other","true").toBool()); int speed = conf->value("setup/speed",3).toInt(); switch (speed) { case 0: timer_pause(); break; case 1: timer_speed1(); break; case 5: timer_speed5(); break; default: timer_speed3(); break; } } MainWindow::~MainWindow(){ timerUpdate->stop(); conf->setValue("form/width",this->width()); conf->setValue("form/height",this->height()); for (int tableCol=1;tableColtableWidget->columnCount();tableCol++){ conf->setValue("tableWidget/column"+QString::number(tableCol),ui->tableWidget->columnWidth(tableCol)); } conf->setValue("view/resolve",ui->actionResolve_Addresses->isChecked()); conf->setValue("view/TCP",ui->actionTCP->isChecked()); conf->setValue("view/UDP",ui->actionUDP->isChecked()); conf->setValue("view/TCP6",ui->actionTCP6->isChecked()); conf->setValue("view/UDP6",ui->actionUDP6->isChecked()); conf->setValue("view/status_listen",ui->actionLISTEN->isChecked()); conf->setValue("view/status_established",ui->actionESTABLISHED->isChecked()); conf->setValue("view/status_close",ui->actionCLOSE->isChecked()); conf->setValue("view/status_other",ui->actionAllOther->isChecked()); int speed=3; if (ui->actionPause->isChecked()) speed=0; if (ui->action1_second->isChecked()) speed=1; if (ui->action5_second->isChecked()) speed=5; conf->setValue("setup/speed",speed); delete timerUpdate; delete conf; delete ui; } void MainWindow::initPopupMenu(){ menu = new QMenu("my", this); actionPropertiesProcess = new QAction(tr("Properties..."),menu); connect(actionPropertiesProcess,SIGNAL(triggered()),this,SLOT(PropertiesProcess())); actionKillProcess = new QAction(tr("Kill process"),menu); connect(actionKillProcess,SIGNAL(triggered()),this,SLOT(killProcess())); actionCloseConnection = new QAction(tr("Close connection"),menu); connect(actionCloseConnection,SIGNAL(triggered()),this,SLOT(closeConnection())); #if defined(Q_OS_LINUX) || defined(Q_OS_UNIX) menu->addAction(actionPropertiesProcess); #endif menu->addAction(actionKillProcess); #if defined(Q_OS_LINUX) || defined(Q_OS_UNIX) menu->addAction(actionCloseConnection); #endif } void MainWindow::popupCustomMenu( const QPoint &pos ){ if (ui->tableWidget->currentRow()==-1) return; QString proc_id = ui->tableWidget->item(ui->tableWidget->currentRow(),5)->text(); QString prog = ui->tableWidget->item(ui->tableWidget->currentRow(),6)->text(); if (proc_id.isEmpty() or proc_id=="0" or prog=="-"){ actionPropertiesProcess->setEnabled(false); actionKillProcess->setEnabled(false); }else{ actionPropertiesProcess->setEnabled(true); actionKillProcess->setEnabled(true); } menu->popup(ui->tableWidget->mapToGlobal(pos)); } void MainWindow::killProcess(){ ProcessList::killProcess(ui->tableWidget->item(ui->tableWidget->currentRow(),5)->text()); } void MainWindow::PropertiesProcess(){ int pid = ui->tableWidget->item(ui->tableWidget->currentRow(),5)->text().toInt(); ProcessExplorer form(pid,this); form.exec(); } void MainWindow::closeConnection(){ #if defined(Q_OS_WIN) QMessageBox::critical(this,tr("close connection"),tr("This function is not implemented for this OS")); return; #else if (getuid()==0){ if (ui->tableWidget->item(ui->tableWidget->currentRow(),4)->text() == "ESTABLISHED"){ ProcessList::closeConnection(ui->tableWidget->item(ui->tableWidget->currentRow(),0)->text().split("/").at(0),ui->tableWidget->item(ui->tableWidget->currentRow(),0)->text().split("/").at(1)); }else{ QMessageBox::critical(this,tr("close connection"),tr("Only ESTABLISHED")); } }else{ QMessageBox::critical(this,tr("close connection"),tr("Only root can do this")); } #endif } void MainWindow::tableWidget_sectionClicked(int col){ sortcol=col; timerUpdate_timeout(); } void MainWindow::showAbout(){ FormAbout form(this); form.exec(); } void MainWindow::CopyToClipboard(){ if (ui->tableWidget->currentRow()==-1){ QMessageBox::critical(this,tr("Copy to clipboard"),tr("First select the line for copying")); return; } QString buffer=""; QClipboard *clipboard = QApplication::clipboard(); for (int i=0;itableWidget->columnCount();i++){ buffer+=ui->tableWidget->item(ui->tableWidget->currentRow(),i)->text() +";"; } clipboard->setText(buffer); QMessageBox::information(this,tr("Copy to clipboard"),tr("Line was successfully copied to the clipboard")); } void MainWindow::CopyToFile(){ int interval = timerUpdate->interval(); timerUpdate->stop(); QString fileName = QFileDialog::getSaveFileName(this,tr("Save to file"), "", tr("All Files (*.*)")); if (fileName.size() > 0){ QFile file(fileName); if (file.open(QIODevice::WriteOnly | QIODevice::Text)){ QTextStream out(&file); for (int r=0;rtableWidget->rowCount();r++){ for (int i=0;itableWidget->columnCount();i++){ out << ui->tableWidget->item(r,i)->text() +"\t"; } out << "\n"; } file.close(); } } timerUpdate->start(interval); } void MainWindow::Resolve_Addresses(){ timerUpdate_timeout(); } void MainWindow::lookedUp(const QHostInfo &host){ if (host.error() != QHostInfo::NoError) { //qDebug() << "Lookup failed:" << host.errorString(); return; } foreach (const QHostAddress &address, host.addresses()) DNSCache[address.toString()]=host.hostName(); } QString MainWindow::resolve(QString ipaddr,const QString &prot){ if (ipaddr.split(":").size()!=2) return ipaddr; if (ipaddr=="*") return ipaddr; if (DNSCache[ipaddr.split(":").at(0)] != ""){ ipaddr=DNSCache[ipaddr.split(":").at(0)]+":"+ipaddr.split(":").at(1); } if (ServicesCache[ipaddr.split(":").at(1)+"/"+prot] != ""){ ipaddr=ipaddr.split(":").at(0)+":"+ServicesCache[ipaddr.split(":").at(1)+"/"+prot]; } return ipaddr; } void MainWindow::timer_speed1(){ ui->action1_second->setChecked(true); ui->action3_second->setChecked(false); ui->action5_second->setChecked(false); ui->actionPause->setChecked(false); timerUpdate_timeout(); timerUpdate->start(1000); } void MainWindow::timer_speed3(){ ui->action1_second->setChecked(false); ui->action3_second->setChecked(true); ui->action5_second->setChecked(false); ui->actionPause->setChecked(false); timerUpdate_timeout(); timerUpdate->start(3000); } void MainWindow::timer_speed5(){ ui->action1_second->setChecked(false); ui->action3_second->setChecked(false); ui->action5_second->setChecked(true); ui->actionPause->setChecked(false); timerUpdate_timeout(); timerUpdate->start(5000); } void MainWindow::timer_pause(){ ui->action1_second->setChecked(false); ui->action3_second->setChecked(false); ui->action5_second->setChecked(false); ui->actionPause->setChecked(true); timerUpdate->stop(); } void MainWindow::restartAsRoot(){ this->hide(); QProcess::startDetached(QApplication::applicationDirPath()+"/"+qAppName(),QStringList() << "--run-as-root"); exit(0); } void MainWindow::drawTable(QVector newNetStat){ QString key=""; int horizontalScrollBarIndex = 0; int verticalScrollBarIndex = 0; int listen=0; int established=0; QMap oldSizeCols; if (ui->tableWidget->currentRow()>=0){ key = ui->tableWidget->item(ui->tableWidget->currentRow(),2)->text() +"+"+ui->tableWidget->item(ui->tableWidget->currentRow(),3)->text(); } verticalScrollBarIndex = ui->tableWidget->verticalScrollBar()->value(); horizontalScrollBarIndex = ui->tableWidget->horizontalScrollBar()->value(); for (int i=0;itableWidget->columnCount();i++) oldSizeCols[i]=ui->tableWidget->columnWidth(i); ui->tableWidget->setRowCount(0); int row=0; for (int i=0;iactionTCP->isChecked()!=true) continue; }else if (newNetStat.at(i).prot=="UDP"){ if (ui->actionUDP->isChecked()!=true) continue; }else if (newNetStat.at(i).prot=="TCP6"){ if (ui->actionTCP6->isChecked()!=true) continue; }else if (newNetStat.at(i).prot=="UDP6"){ if (ui->actionUDP6->isChecked()!=true) continue; } // filter state if (newNetStat.at(i).stat=="ESTABLISHED" or newNetStat.at(i).stat=="ESTABLISH"){ if (ui->actionESTABLISHED->isChecked()!=true) continue; }else if(newNetStat.at(i).stat=="LISTEN" or newNetStat.at(i).stat=="LISTENING"){ if (ui->actionLISTEN->isChecked()!=true) continue; }else if(newNetStat.at(i).stat=="CLOSE"){ if (ui->actionCLOSE->isChecked()!=true) continue; }else{ if (ui->actionAllOther->isChecked()!=true) continue; } QString local_address = newNetStat.at(i).local_address; QString rem_address = newNetStat.at(i).rem_address; QString pid = newNetStat.at(i).process.pid; if (!ui->lineEdit->text().isEmpty()){ if (ui->lineEdit->text()!=rem_address.split(":").at(0) and ui->lineEdit->text()!=local_address.split(":").at(0) and ui->lineEdit->text()!=pid and newNetStat.at(i).process.program.toLower().indexOf(ui->lineEdit->text().toLower())==-1 ){ continue; } } ui->tableWidget->setRowCount(ui->tableWidget->rowCount()+1); QTableWidgetItem *itemKey = new QTableWidgetItem(local_address+"/"+rem_address); ui->tableWidget->setItem(row, 0, itemKey); if (local_address.split(":").at(0) != "*"){ if (DNSCache[local_address.split(":").at(0)] == ""){ QHostInfo::lookupHost(local_address.split(":").at(0),this,SLOT(lookedUp(QHostInfo))); } } if (rem_address != "*"){ if (DNSCache[rem_address.split(":").at(0)] == ""){ QHostInfo::lookupHost(rem_address.split(":").at(0),this,SLOT(lookedUp(QHostInfo))); } } if (ui->actionResolve_Addresses->isChecked()==true){ local_address=resolve(local_address,newNetStat.at(i).prot); rem_address=resolve(rem_address,newNetStat.at(i).prot); } QTableWidgetItem *itemProt = new QTableWidgetItem(newNetStat.at(i).prot); ui->tableWidget->setItem(row, 1, itemProt); QTableWidgetItem *itemLocalAddress = new QTableWidgetItem(local_address); ui->tableWidget->setItem(row, 2, itemLocalAddress); QTableWidgetItem *itemRemoteAddress = new QTableWidgetItem(rem_address); ui->tableWidget->setItem(row, 3, itemRemoteAddress); QTableWidgetItem *itemStat = new QTableWidgetItem(newNetStat.at(i).stat); ui->tableWidget->setItem(row, 4, itemStat); QTableWidgetItem *itemPID = new QTableWidgetItem(newNetStat.at(i).process.pid); ui->tableWidget->setItem(row, 5, itemPID); QTableWidgetItem *itemProg = new QTableWidgetItem(newNetStat.at(i).process.program); ui->tableWidget->setItem(row, 6, itemProg); ui->tableWidget->item(row,6)->setToolTip(itemProg->text()); QTableWidgetItem *itemCmdLine = new QTableWidgetItem(newNetStat.at(i).process.cmdline); ui->tableWidget->setItem(row, 7, itemCmdLine); ui->tableWidget->item(row,7)->setToolTip(itemCmdLine->text()); for (int c=1;ctableWidget->columnCount();c++){ if (newNetStat.at(i).operation==1){ ui->tableWidget->item(row,c)->setBackgroundColor(QColor(0,255,0)); } if (newNetStat.at(i).operation==2){ ui->tableWidget->item(row,c)->setBackgroundColor(QColor(255,0,0)); } } if (local_address+"+"+rem_address ==key){ ui->tableWidget->selectRow(row); } ui->tableWidget->setRowHeight(row,18); if (newNetStat.at(i).stat=="LISTEN" or newNetStat.at(i).stat=="LISTENING") listen++; if (newNetStat.at(i).stat=="ESTABLISHED" or newNetStat.at(i).stat=="ESTABLISH") established++; row++; } // Sorting and restoring the cursor position if (ui->tableWidget->rowCount()>0){ ui->tableWidget->sortByColumn(sortcol); ui->tableWidget->verticalScrollBar()->setValue(verticalScrollBarIndex); for (int i=0;itableWidget->columnCount();i++) ui->tableWidget->setColumnWidth(i,oldSizeCols[i]); ui->tableWidget->horizontalScrollBar()->setMaximum(ui->tableWidget->columnCount()); ui->tableWidget->horizontalScrollBar()->setValue(horizontalScrollBarIndex); } ui->label->setText(tr("Count connections: ")+QString::number(row)); ui->label_2->setText(tr("Count LISTEN: ")+QString::number(listen)); ui->label_3->setText(tr("Count ESTABLISHED: ")+QString::number(established)); } void MainWindow::timerUpdate_timeout(){ netstat->start(); } void MainWindow::showSetupKill(){ ui->tableWidget->horizontalScrollBar()->setValue(ui->tableWidget->horizontalScrollBar()->maximum()); setupUtiliteKill frm; frm.exec(); } admsasha-qnetstatview-91a4996de9e4/mainwindow.h000066400000000000000000000027741411134372600215130ustar00rootroot00000000000000#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include "cNetStat.h" #include "setupUtiliteKill.h" namespace Ui { class MainWindow; } class MainWindow : public QMainWindow{ Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui; void initPopupMenu(); QString resolve(QString ipaddr, const QString &prot); QTimer *timerUpdate; cNetStat *netstat; QMenu *menu; QAction *actionPropertiesProcess; QAction *actionKillProcess; QAction *actionCloseConnection; QSettings *conf; int sortcol; QMap DNSCache; QMap ServicesCache; private slots: void popupCustomMenu( const QPoint &pos ); void killProcess(); void PropertiesProcess(); void closeConnection(); void timerUpdate_timeout(); void drawTable(QVector newNetStat); void CopyToClipboard(); void CopyToFile(); void restartAsRoot(); void tableWidget_sectionClicked(int col); void Resolve_Addresses(); void lookedUp(const QHostInfo &host); void timer_speed1(); void timer_speed3(); void timer_speed5(); void timer_pause(); void showAbout(); void showSetupKill(); }; #endif // MAINWINDOW_H admsasha-qnetstatview-91a4996de9e4/mainwindow.ui000066400000000000000000000245161411134372600216770ustar00rootroot00000000000000 MainWindow 0 0 800 600 MainWindow 5 5 5 5 3 QFrame::Box TextLabel QFrame::Box TextLabel QFrame::Box TextLabel QAbstractItemView::NoEditTriggers QAbstractItemView::SelectRows false prot local_address rem_address state pid program cmdline QFrame::Raised Filter: true Qt::Horizontal 40 20 0 0 800 21 &File &Help &View &Update speed &Options &Prot &State &Exit &About F1 &Refresh Now F5 true false &1 second Alt+1 true true &3 second Alt+2 true &5 second Alt+3 true false &Pause Alt+0 &Save As... &Copy to clipboard &Restart as Root true &Resolve Addresses true true &TCP true true &UDP true true T&CP6 true true U&DP6 true true &CLOSE true true &ESTABLISHED true true &LISTEN true true &All other &Utilite for kill... admsasha-qnetstatview-91a4996de9e4/pkg/000077500000000000000000000000001411134372600177355ustar00rootroot00000000000000admsasha-qnetstatview-91a4996de9e4/pkg/icons/000077500000000000000000000000001411134372600210505ustar00rootroot00000000000000admsasha-qnetstatview-91a4996de9e4/pkg/icons/16x16/000077500000000000000000000000001411134372600216355ustar00rootroot00000000000000admsasha-qnetstatview-91a4996de9e4/pkg/icons/16x16/apps/000077500000000000000000000000001411134372600226005ustar00rootroot00000000000000admsasha-qnetstatview-91a4996de9e4/pkg/icons/16x16/apps/qnetstatview.png000066400000000000000000000014771411134372600260550ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a pHYs(JIDAT8O]HSalngӳ/7۬\fy~%"Rie"XR]uuUwBPVdTQbYYFIfSs;[SGgF?xx}}^"(mM7 |sAt|΋*elt'~Y^j/js0^i vI^6#HnƗ)^:}ýa"RNh!?8f1i@R*C"f9 Sl 椒d#58M\!xD $I;N ݚyo@r?16a;Bpybay#eGJ!vuːu~3:? -(9ŎEAY((=*ek4;@3v+<`"@wA$ ḏz0y9G;YUTD4r&V [i[E~֏+/[ ۖee\&`;4Jrjנ wph=3~n=Ƹز]V+-g4NL%WO4TUΩ3%lf$ zq:xͭޏ*`<8r; ^OHp>/M‚/o0>>9%[au xLzf+VK})ܡȝ51+`0XEQK+t8 B]V?bU `08#˔o FP;IENDB`admsasha-qnetstatview-91a4996de9e4/pkg/icons/32x32/000077500000000000000000000000001411134372600216315ustar00rootroot00000000000000admsasha-qnetstatview-91a4996de9e4/pkg/icons/32x32/apps/000077500000000000000000000000001411134372600225745ustar00rootroot00000000000000admsasha-qnetstatview-91a4996de9e4/pkg/icons/32x32/apps/qnetstatview.png000066400000000000000000000041441411134372600260430ustar00rootroot00000000000000PNG  IHDR szzsRGBgAMA a pHYsodIDATXGWklff/^qbl/6&l%R?\DUUZUR&FJS&(i@() bwfX~^{׻;;33&>Ƨ2_| l":~־X&FSZdyyUisklm,cbZDw8:zF"co`|0~kg+є,R'w'Ey*-q^S$MKۂm{ե~ݶW5۽˸/$jb)| DIFV29 +e%LIUYewofW7G5x6f:> XYB"#C$9EQV V^Q [YĻ<܂pw6:s SC e>@(8Nva#ő1:&J E14:%G}*;=P_һSPX5Lz9\8AX.529vpԿDp( &rTzpz36j4HZu˙kWo ~]b{lv,~z*`W7ɨjY}z 8kD t&$.뼊m'E(Y*[gm*Y '?=޾0&ƈIшlB*q`CmRPT -]ʶ|̳ dN,s,L0+"F[dp`?.FӆYQml *J1MR]P+G&xa LU0X51-0˚`8ÃUP.3Wo㣿Ko x;yCɫCןnx:~w'*eJ v. )e\& oFc^ 30YQ77ozN:ni;=Az'.xH5UX]49W+X(̾},kUTIy>Ѿ;տZ| :Eٙ'Z\K-[UjTz;~܊W1܉lj^08r\ 糘H1v/)"'TALD)6Ȳ>@IFBZЛjt-ݾ!;؟G"￷: \[-x'.r?ӯ )Lt|e8 }*(3W? rRj~IENDB`admsasha-qnetstatview-91a4996de9e4/pkg/icons/48x48/000077500000000000000000000000001411134372600216475ustar00rootroot00000000000000admsasha-qnetstatview-91a4996de9e4/pkg/icons/48x48/apps/000077500000000000000000000000001411134372600226125ustar00rootroot00000000000000admsasha-qnetstatview-91a4996de9e4/pkg/icons/48x48/apps/qnetstatview.png000066400000000000000000000102641411134372600260610ustar00rootroot00000000000000PNG  IHDR00WsRGBgAMA a pHYs(JIIDAThCX[lu>s\ryӍL[ŵE0=ia@}n 5E"(Ї-d%FNqvd;WIQ$K{}CҖ%ݝswp".roLG^iTE^ɜ0$ ܈#xɶm2fz8@[ 8}_<_'t"J<4,pIID'!ʹiU*\͕z9P_B%πSz3?9M|0c{(hjt-MZhᅼ]kΕZe]5SiqOBAN}fE~d|$&KQ{ZסT'đGȆURnJ4~q+v L׾]z@"l-_7_(E#S!y8" H6"$w;r|^z%~I/4qL@܀ ޓ N}l&xj:E}8C&3!s} ߳ D$T2%SA?I-ܬ̞#'Y8ft(G,: ^f|g .uvSF)8RQ^&łZ]|L36 ==9 7b $<BxzPanpFj,(|dpQmPZ->֩6FSbEo}t~~"-.Q$qeTDcGB+?{͇5)"G8%Q_$3\]kmZ`8% fB|6K Zh"z,J=[[lWkTD$ozr,I5äΞ:u7ޠ ZD+9]On\ tqnNNzfbEeÍǤjU0;S/9sl:5x?]Aم봺8GŵU$ y|ngL]ܕn%h1O˅K hQ5w@%@b-doƧ$ l+MdƸkVB͋s"9LxhݽR:.-Q>R0h6._(Be&'hIQ&n"7·1PN7KE FoB8D}q >m5,aHGJJX od/1:p:0EQ˜uB! |4VJ!# 6u<' ʧ ^kwޣ[+T(שZ:O=K&A( p""kB)y=43mr42 m[.CUms2Zxz[9acO Q wvUI;`,Cir.ZT )^/l1RTM\;6GUyޑXD3CKJ#{ҦQGq?v^Qrf5ANFɇnY67 . JcD\QB}aJiCla=D ,B<36L>%y@QC:Qx @7U֝^?ʄitA^c44 'P-ªCD۫nznn6yI\PlÈo)JңS2'D9%)C4rsa9'Ƈq,ej0t37VyYȭz=3Gº݄?_|h:S?ٙ @$͝&VYMVwq|(JE7oAf*=*n47ɯoU=MVȹSG`Sј-f,x[-л{}*AEFeQax^cw_0uP&*zT߰zHwUž#ۖW+&x/~L8Qt$wϼ8φtv.ameyl<8W-ƅh;fD4n.d?n=jVב}!=P ,y(>\~;X 6Hm3"[q9 *88+?bݼkwD96or{ɷmjvbֹXoa*Os2|h6O֝rgyqyUmW<e{nF+aL٩0ym2z7,d?֑&a[sKGZ#2e'vK (Wʕ6|_mjt\Y=(SVO8c0*5.]/:uwm\WRej)}SSϘ^@[#6b[m*-m*M#ybG^jչuua1_ryfquv%?=.r(gI 󩺑98)@n 3v+{ծ r_9A o9N8vbp$%xё8W1'a^mw 2ug[ߡAjKNxv+O<}k&9k5m ݒ˭tZ?J4 `9ASQBC%t8>1|kJ݉lyn:k۲c*J8{z͗.ʁ `N<$iF`vylV8VwtJW([*w[6*Q 㒽ݗQw5|F=k=# T~DU^E5`ao&lcb`B232IENDB`admsasha-qnetstatview-91a4996de9e4/pkg/org.pkexec.qnetstatview.policy000066400000000000000000000055661411134372600257740ustar00rootroot00000000000000 qnetstatview DanSoft https://bitbucket.org/admsasha/qnetstatview/ Run QNetStatView as root Spouštět QNetStatView pod uživatelem root Spustit QNetStatView s právy správce systému (root) QNetStatView als Root-Benutzer ausführen Ejecutar QNetStatView como root Lancer QNetStatView en tant que super-utilisateur Pokreni QNetStatView kao korijenskog korisnika QNetStatView futtatása rendszergazdaként Jalankan QNetStatView sebagai root Palaist QNetStatView kā root Uruchomienie programu QNetStatView jako administrator Rodar QNetStatView como root Rulează QNetStatView ca root Запустить QNetStatView с правами администратора Spustiť QNetStatView ako správca Kör QNetStatView som root Chạy QNetStatView dưới tư cách siêu quản trị. 以 root 权限运行 QNetStatView Authentication is required to run QNetStatView as root. Pro spuštění QNetStatView s právy správce je třeba ověření. Il est nécessaire de s’authentifier pour lancer QNetStatView en tant que super-utilisateur. Autenticação é necessária para rodar QNetStatView como root. Для запуска QNetStatView с правами администратора требуется аутентификация. 以 root 权限运行 QNetStatView 需要身份验证. auth_admin auth_admin auth_admin /usr/bin/qnetstatview true admsasha-qnetstatview-91a4996de9e4/pkg/qnetstatview.desktop000066400000000000000000000006721411134372600240730ustar00rootroot00000000000000[Desktop Entry] Type=Application Name=QNetStatView Comment=Shows detailed listings of all TCP and UDP endpoints Comment[ru]=Отображает детальный список всех открытых TCP/IP и UDP соединений GenericName=Network monitoring GenericName[ru]=Сетевой мониторинг Icon=qnetstatview Exec=qnetstatview Terminal=false Categories=Network;Monitor; Keywords=network;netstat;tcp;udp;session; admsasha-qnetstatview-91a4996de9e4/pkg/qnetstatview.spec000066400000000000000000000014041411134372600233460ustar00rootroot00000000000000Name: qnetstatview Version: 1.5.7 Release: 1 Summary: Shows detailed listings of all TCP and UDP endpoints Group: Networking/Other License: GPLv3+ URL: http://dansoft.krasnokamensk.ru/more.html?id=1016 Source0: %{name}-%{version}.tar.gz BuildRequires: qt5-linguist-tools BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5Gui) BuildRequires: pkgconfig(Qt5Widgets) BuildRequires: pkgconfig(Qt5Network) %description Shows detailed listings of all TCP and UDP endpoints. %prep %setup -q %build %qmake_qt5 %make %install %make_install INSTALL_ROOT=%{buildroot} %files %doc README.md %{_bindir}/%{name} %{_datadir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/pixmaps/%{name}.png %{_datadir}/polkit-1/actions/org.pkexec.qnetstatview.policy admsasha-qnetstatview-91a4996de9e4/qnetstatview.ico000066400000000000000000000025761411134372600224200ustar00rootroot00000000000000h(   DDDDDDDD""""DDwẅ             admsasha-qnetstatview-91a4996de9e4/qnetstatview.pro000066400000000000000000000055561411134372600224470ustar00rootroot00000000000000###################################################################### # Automatically generated by qmake (2.01a) ?? ??? 15 19:12:31 2013 ###################################################################### TEMPLATE = app TARGET = qnetstatview DEPENDPATH += . INCLUDEPATH += . MOC_DIR = .build OBJECTS_DIR = .build UI_DIR = .build RCC_DIR = .build DESTDIR = Bin QT += network widgets RESOURCES += qnetstatview.qrc isEmpty(PATH_USERDATA){ win32: PATH_USERDATA=. unix: PATH_USERDATA=/usr/share/qnetstatview } message("Set PATH_USERDATA:" $$PATH_USERDATA) DEFINES += PATH_USERDATA="\\\""$$PATH_USERDATA"\\\"" TRANSLATIONS = $$files(langs/qnetstatview_*.ts) win32 { RC_FILE = qnetstatview.rc LIBS += -lpsapi } unix { } QMAKE_CXXFLAGS += -pedantic -pedantic-errors QMAKE_CXXFLAGS += -Wall -Wextra -Wformat -Wformat-security -Wno-unused-variable -Wno-unused-parameter ### install ### isEmpty(QMAKE_LRELEASE) { win32|os2:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\lrelease.exe else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease unix { !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease-qt5 } } else { !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease } } } !win32 { system($${QMAKE_LRELEASE} -silent $${_PRO_FILE_} 2> /dev/null) } win32 { system($${QMAKE_LRELEASE} $${_PRO_FILE_}) } updateqm.input = TRANSLATIONS updateqm.output = langs/${QMAKE_FILE_BASE}.qm updateqm.commands = $$QMAKE_LRELEASE -silent ${QMAKE_FILE_IN} -qm langs/${QMAKE_FILE_BASE}.qm updateqm.CONFIG += no_link target_predeps QMAKE_EXTRA_COMPILERS += updateqm data_bin.path = /usr/bin/ data_bin.files = Bin/qnetstatview INSTALLS += data_bin data_app.path = /usr/share/applications/ data_app.files = pkg/qnetstatview.desktop INSTALLS += data_app data_pixmaps.path = /usr/share/pixmaps/ data_pixmaps.files = images/qnetstatview.png INSTALLS += data_pixmaps polkit.path = /usr/share/polkit-1/actions/ polkit.files = pkg/org.pkexec.qnetstatview.policy INSTALLS += polkit data_langs.path = $$PATH_USERDATA/langs/ data_langs.files = langs/*.qm INSTALLS += data_langs data_images.path = $$PATH_USERDATA/images data_images.files = images/* INSTALLS += data_images data_icons.path = /usr/share/icons/hicolor/ data_icons.files = pkg/icons/* INSTALLS += data_icons # Input SOURCES += main.cpp \ mainwindow.cpp \ cNetStat.cpp \ ProcessListWindows.cpp \ ProcessListLinux.cpp \ setupUtiliteKill.cpp \ ProcessList.cpp \ FormAbout.cpp \ DialogPasswordPrompt.cpp \ ProcessExplorer.cpp HEADERS += \ mainwindow.h \ cNetStat.h \ ProcessListWindows.h \ ProcessListLinux.h \ setupUtiliteKill.h \ ProcessList.h \ FormAbout.h \ config_qnetstatview.h \ DialogPasswordPrompt.h \ ProcessExplorer.h FORMS += \ mainwindow.ui \ setupUtiliteKill.ui \ FormAbout.ui \ DialogPasswordPrompt.ui \ ProcessExplorer.ui admsasha-qnetstatview-91a4996de9e4/qnetstatview.qrc000066400000000000000000000002011411134372600224120ustar00rootroot00000000000000 qnetstatview.ico services admsasha-qnetstatview-91a4996de9e4/qnetstatview.rc000066400000000000000000000001031411134372600222320ustar00rootroot00000000000000IDI_ICON1 ICON DISCARDABLE "qnetstatview.ico" admsasha-qnetstatview-91a4996de9e4/services000066400000000000000000000455211411134372600207310ustar00rootroot00000000000000# Network services, Internet style # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, officially ports have two entries # even if the protocol doesn't support UDP operations. # # Updated from http://www.iana.org/assignments/port-numbers and other # sources like http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services . # New ports will be added on request if they have been officially assigned # by IANA and used in the real-world or are needed by a debian package. # If you need a huge list of used numbers please install the nmap package. tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol msp 18/udp chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp fsp 21/udp fspd ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp telnet 23/tcp smtp 25/tcp mail time 37/tcp timserver time 37/udp timserver rlp 39/udp resource # resource location nameserver 42/tcp name # IEN 116 whois 43/tcp nicname tacacs 49/tcp # Login Host Protocol (TACACS) tacacs 49/udp re-mail-ck 50/tcp # Remote Mail Checking Protocol re-mail-ck 50/udp domain 53/tcp # Domain Name Server domain 53/udp mtp 57/tcp # deprecated tacacs-ds 65/tcp # TACACS-Database Service tacacs-ds 65/udp bootps 67/tcp # BOOTP server bootps 67/udp bootpc 68/tcp # BOOTP client bootpc 68/udp tftp 69/udp gopher 70/tcp # Internet Gopher gopher 70/udp rje 77/tcp netrjs finger 79/tcp http 80/tcp www # WorldWideWeb HTTP http 80/udp # HyperText Transfer Protocol link 87/tcp ttylink kerberos 88/tcp kerberos5 krb5 kerberos-sec # Kerberos v5 kerberos 88/udp kerberos5 krb5 kerberos-sec # Kerberos v5 supdup 95/tcp hostnames 101/tcp hostname # usually from sri-nic iso-tsap 102/tcp tsap # part of ISODE acr-nema 104/tcp dicom # Digital Imag. & Comm. 300 acr-nema 104/udp dicom csnet-ns 105/tcp cso-ns # also used by CSO name server csnet-ns 105/udp cso-ns rtelnet 107/tcp # Remote Telnet rtelnet 107/udp pop2 109/tcp postoffice pop-2 # POP version 2 pop2 109/udp pop-2 pop3 110/tcp pop-3 # POP version 3 pop3 110/udp pop-3 sunrpc 111/tcp portmapper # RPC 4.0 portmapper sunrpc 111/udp portmapper auth 113/tcp authentication tap ident sftp 115/tcp uucp-path 117/tcp nntp 119/tcp readnews untp # USENET News Transfer Protocol ntp 123/tcp ntp 123/udp # Network Time Protocol pwdgen 129/tcp # PWDGEN service pwdgen 129/udp loc-srv 135/tcp epmap # Location Service loc-srv 135/udp epmap netbios-ns 137/tcp # NETBIOS Name Service netbios-ns 137/udp netbios-dgm 138/tcp # NETBIOS Datagram Service netbios-dgm 138/udp netbios-ssn 139/tcp # NETBIOS session service netbios-ssn 139/udp imap2 143/tcp imap # Interim Mail Access P 2 and 4 imap2 143/udp imap snmp 161/tcp # Simple Net Mgmt Protocol snmp 161/udp snmp-trap 162/tcp snmptrap # Traps for SNMP snmp-trap 162/udp snmptrap cmip-man 163/tcp # ISO mgmt over IP (CMOT) cmip-man 163/udp cmip-agent 164/tcp cmip-agent 164/udp mailq 174/tcp # Mailer transport queue for Zmailer mailq 174/udp xdmcp 177/tcp # X Display Mgr. Control Proto xdmcp 177/udp nextstep 178/tcp NeXTStep NextStep # NeXTStep window nextstep 178/udp NeXTStep NextStep # server bgp 179/tcp # Border Gateway Protocol bgp 179/udp prospero 191/tcp # Cliff Neuman's Prospero prospero 191/udp irc 194/tcp # Internet Relay Chat irc 194/udp smux 199/tcp # SNMP Unix Multiplexer smux 199/udp at-rtmp 201/tcp # AppleTalk routing at-rtmp 201/udp at-nbp 202/tcp # AppleTalk name binding at-nbp 202/udp at-echo 204/tcp # AppleTalk echo at-echo 204/udp at-zis 206/tcp # AppleTalk zone information at-zis 206/udp qmtp 209/tcp # Quick Mail Transfer Protocol qmtp 209/udp z3950 210/tcp wais # NISO Z39.50 database z3950 210/udp wais ipx 213/tcp # IPX ipx 213/udp imap3 220/tcp # Interactive Mail Access imap3 220/udp # Protocol v3 pawserv 345/tcp # Perf Analysis Workbench pawserv 345/udp zserv 346/tcp # Zebra server zserv 346/udp fatserv 347/tcp # Fatmen Server fatserv 347/udp rpc2portmap 369/tcp rpc2portmap 369/udp # Coda portmapper codaauth2 370/tcp codaauth2 370/udp # Coda authentication server clearcase 371/tcp Clearcase clearcase 371/udp Clearcase ulistserv 372/tcp # UNIX Listserv ulistserv 372/udp ldap 389/tcp # Lightweight Directory Access Protocol ldap 389/udp imsp 406/tcp # Interactive Mail Support Protocol imsp 406/udp svrloc 427/tcp # Server Location svrloc 427/udp https 443/tcp # http protocol over TLS/SSL https 443/udp snpp 444/tcp # Simple Network Paging Protocol snpp 444/udp microsoft-ds 445/tcp # Microsoft Naked CIFS microsoft-ds 445/udp kpasswd 464/tcp kpasswd 464/udp saft 487/tcp # Simple Asynchronous File Transfer saft 487/udp isakmp 500/tcp # IPsec - Internet Security Association isakmp 500/udp # and Key Management Protocol rtsp 554/tcp # Real Time Stream Control Protocol rtsp 554/udp nqs 607/tcp # Network Queuing system nqs 607/udp npmp-local 610/tcp dqs313_qmaster # npmp-local / DQS npmp-local 610/udp dqs313_qmaster npmp-gui 611/tcp dqs313_execd # npmp-gui / DQS npmp-gui 611/udp dqs313_execd hmmp-ind 612/tcp dqs313_intercell # HMMP Indication / DQS hmmp-ind 612/udp dqs313_intercell qmqp 628/tcp qmqp 628/udp ipp 631/tcp # Internet Printing Protocol ipp 631/udp # # UNIX specific services # exec 512/tcp biff 512/udp comsat login 513/tcp who 513/udp whod shell 514/tcp cmd # no passwords used syslog 514/udp printer 515/tcp spooler # line printer spooler talk 517/udp ntalk 518/udp route 520/udp router routed # RIP timed 525/udp timeserver tempo 526/tcp newdate courier 530/tcp rpc conference 531/tcp chat netnews 532/tcp readnews netwall 533/udp # for emergency broadcasts gdomap 538/tcp # GNUstep distributed objects gdomap 538/udp uucp 540/tcp uucpd # uucp daemon klogin 543/tcp # Kerberized `rlogin' (v5) kshell 544/tcp krcmd # Kerberized `rsh' (v5) dhcpv6-client 546/tcp dhcpv6-client 546/udp dhcpv6-server 547/tcp dhcpv6-server 547/udp afpovertcp 548/tcp # AFP over TCP afpovertcp 548/udp idfp 549/tcp idfp 549/udp remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem nntps 563/tcp snntp # NNTP over SSL nntps 563/udp snntp submission 587/tcp # Submission [RFC4409] submission 587/udp ldaps 636/tcp # LDAP over SSL ldaps 636/udp tinc 655/tcp # tinc control port tinc 655/udp silc 706/tcp silc 706/udp kerberos-adm 749/tcp # Kerberos `kadmin' (v5) # webster 765/tcp # Network dictionary webster 765/udp rsync 873/tcp rsync 873/udp ftps-data 989/tcp # FTP over SSL (data) ftps 990/tcp telnets 992/tcp # Telnet over SSL telnets 992/udp imaps 993/tcp # IMAP over SSL imaps 993/udp ircs 994/tcp # IRC over SSL ircs 994/udp pop3s 995/tcp # POP-3 over SSL pop3s 995/udp # # From ``Assigned Numbers'': # #> The Registered Ports are not controlled by the IANA and on most systems #> can be used by ordinary user processes or programs executed by ordinary #> users. # #> Ports are used in the TCP [45,106] to name the ends of logical #> connections which carry long term conversations. For the purpose of #> providing services to unknown callers, a service contact port is #> defined. This list specifies the port used by the server process as its #> contact port. While the IANA can not control uses of these ports it #> does register or list uses of these ports as a convienence to the #> community. # socks 1080/tcp # socks proxy server socks 1080/udp proofd 1093/tcp proofd 1093/udp rootd 1094/tcp rootd 1094/udp openvpn 1194/tcp openvpn 1194/udp rmiregistry 1099/tcp # Java RMI Registry rmiregistry 1099/udp kazaa 1214/tcp kazaa 1214/udp nessus 1241/tcp # Nessus vulnerability nessus 1241/udp # assessment scanner lotusnote 1352/tcp lotusnotes # Lotus Note lotusnote 1352/udp lotusnotes ms-sql-s 1433/tcp # Microsoft SQL Server ms-sql-s 1433/udp ms-sql-m 1434/tcp # Microsoft SQL Monitor ms-sql-m 1434/udp ingreslock 1524/tcp ingreslock 1524/udp prospero-np 1525/tcp # Prospero non-privileged prospero-np 1525/udp datametrics 1645/tcp old-radius datametrics 1645/udp old-radius sa-msg-port 1646/tcp old-radacct sa-msg-port 1646/udp old-radacct kermit 1649/tcp kermit 1649/udp groupwise 1677/tcp groupwise 1677/udp l2f 1701/tcp l2tp l2f 1701/udp l2tp radius 1812/tcp radius 1812/udp radius-acct 1813/tcp radacct # Radius Accounting radius-acct 1813/udp radacct msnp 1863/tcp # MSN Messenger msnp 1863/udp unix-status 1957/tcp # remstats unix-status server log-server 1958/tcp # remstats log server remoteping 1959/tcp # remstats remoteping server cisco-sccp 2000/tcp # Cisco SCCP cisco-sccp 2000/udp search 2010/tcp ndtp pipe-server 2010/tcp pipe_server nfs 2049/tcp # Network File System nfs 2049/udp # Network File System gnunet 2086/tcp gnunet 2086/udp rtcm-sc104 2101/tcp # RTCM SC-104 IANA 1/29/99 rtcm-sc104 2101/udp gsigatekeeper 2119/tcp gsigatekeeper 2119/udp gris 2135/tcp # Grid Resource Information Server gris 2135/udp cvspserver 2401/tcp # CVS client/server operations cvspserver 2401/udp venus 2430/tcp # codacon port venus 2430/udp # Venus callback/wbc interface venus-se 2431/tcp # tcp side effects venus-se 2431/udp # udp sftp side effect codasrv 2432/tcp # not used codasrv 2432/udp # server port codasrv-se 2433/tcp # tcp side effects codasrv-se 2433/udp # udp sftp side effect mon 2583/tcp # MON traps mon 2583/udp dict 2628/tcp # Dictionary server dict 2628/udp f5-globalsite 2792/tcp f5-globalsite 2792/udp gsiftp 2811/tcp gsiftp 2811/udp gpsd 2947/tcp gpsd 2947/udp gds-db 3050/tcp gds_db # InterBase server gds-db 3050/udp gds_db icpv2 3130/tcp icp # Internet Cache Protocol icpv2 3130/udp icp mysql 3306/tcp mysql 3306/udp nut 3493/tcp # Network UPS Tools nut 3493/udp distcc 3632/tcp # distributed compiler distcc 3632/udp daap 3689/tcp # Digital Audio Access Protocol daap 3689/udp svn 3690/tcp subversion # Subversion protocol svn 3690/udp subversion suucp 4031/tcp # UUCP over SSL suucp 4031/udp sysrqd 4094/tcp # sysrq daemon sysrqd 4094/udp sieve 4190/tcp # ManageSieve Protocol epmd 4369/tcp # Erlang Port Mapper Daemon epmd 4369/udp remctl 4373/tcp # Remote Authenticated Command Service remctl 4373/udp f5-iquery 4353/tcp # F5 iQuery f5-iquery 4353/udp iax 4569/tcp # Inter-Asterisk eXchange iax 4569/udp mtn 4691/tcp # monotone Netsync Protocol mtn 4691/udp radmin-port 4899/tcp # RAdmin Port radmin-port 4899/udp rfe 5002/udp # Radio Free Ethernet rfe 5002/tcp mmcc 5050/tcp # multimedia conference control tool (Yahoo IM) mmcc 5050/udp sip 5060/tcp # Session Initiation Protocol sip 5060/udp sip-tls 5061/tcp sip-tls 5061/udp aol 5190/tcp # AIM aol 5190/udp xmpp-client 5222/tcp jabber-client # Jabber Client Connection xmpp-client 5222/udp jabber-client xmpp-server 5269/tcp jabber-server # Jabber Server Connection xmpp-server 5269/udp jabber-server cfengine 5308/tcp cfengine 5308/udp mdns 5353/tcp # Multicast DNS mdns 5353/udp postgresql 5432/tcp postgres # PostgreSQL Database postgresql 5432/udp postgres freeciv 5556/tcp rptp # Freeciv gameplay freeciv 5556/udp amqp 5672/tcp amqp 5672/udp amqp 5672/sctp ggz 5688/tcp # GGZ Gaming Zone ggz 5688/udp x11 6000/tcp x11-0 # X Window System x11 6000/udp x11-0 x11-1 6001/tcp x11-1 6001/udp x11-2 6002/tcp x11-2 6002/udp x11-3 6003/tcp x11-3 6003/udp x11-4 6004/tcp x11-4 6004/udp x11-5 6005/tcp x11-5 6005/udp x11-6 6006/tcp x11-6 6006/udp x11-7 6007/tcp x11-7 6007/udp gnutella-svc 6346/tcp # gnutella gnutella-svc 6346/udp gnutella-rtr 6347/tcp # gnutella gnutella-rtr 6347/udp sge-qmaster 6444/tcp sge_qmaster # Grid Engine Qmaster Service sge-qmaster 6444/udp sge_qmaster sge-execd 6445/tcp sge_execd # Grid Engine Execution Service sge-execd 6445/udp sge_execd mysql-proxy 6446/tcp # MySQL Proxy mysql-proxy 6446/udp afs3-fileserver 7000/tcp bbs # file server itself afs3-fileserver 7000/udp bbs afs3-callback 7001/tcp # callbacks to cache managers afs3-callback 7001/udp afs3-prserver 7002/tcp # users & groups database afs3-prserver 7002/udp afs3-vlserver 7003/tcp # volume location database afs3-vlserver 7003/udp afs3-kaserver 7004/tcp # AFS/Kerberos authentication afs3-kaserver 7004/udp afs3-volser 7005/tcp # volume managment server afs3-volser 7005/udp afs3-errors 7006/tcp # error interpretation service afs3-errors 7006/udp afs3-bos 7007/tcp # basic overseer process afs3-bos 7007/udp afs3-update 7008/tcp # server-to-server updater afs3-update 7008/udp afs3-rmtsys 7009/tcp # remote cache manager service afs3-rmtsys 7009/udp font-service 7100/tcp xfs # X Font Service font-service 7100/udp xfs http-alt 8080/tcp webcache # WWW caching service http-alt 8080/udp bacula-dir 9101/tcp # Bacula Director bacula-dir 9101/udp bacula-fd 9102/tcp # Bacula File Daemon bacula-fd 9102/udp bacula-sd 9103/tcp # Bacula Storage Daemon bacula-sd 9103/udp xmms2 9667/tcp # Cross-platform Music Multiplexing System xmms2 9667/udp nbd 10809/tcp # Linux Network Block Device zabbix-agent 10050/tcp # Zabbix Agent zabbix-agent 10050/udp zabbix-trapper 10051/tcp # Zabbix Trapper zabbix-trapper 10051/udp amanda 10080/tcp # amanda backup services amanda 10080/udp hkp 11371/tcp # OpenPGP HTTP Keyserver hkp 11371/udp bprd 13720/tcp # VERITAS NetBackup bprd 13720/udp bpdbm 13721/tcp # VERITAS NetBackup bpdbm 13721/udp bpjava-msvc 13722/tcp # BP Java MSVC Protocol bpjava-msvc 13722/udp vnetd 13724/tcp # Veritas Network Utility vnetd 13724/udp bpcd 13782/tcp # VERITAS NetBackup bpcd 13782/udp vopied 13783/tcp # VERITAS NetBackup vopied 13783/udp dcap 22125/tcp # dCache Access Protocol gsidcap 22128/tcp # GSI dCache Access Protocol wnn6 22273/tcp # wnn6 wnn6 22273/udp # # Datagram Delivery Protocol services # rtmp 1/ddp # Routing Table Maintenance Protocol nbp 2/ddp # Name Binding Protocol echo 4/ddp # AppleTalk Echo Protocol zip 6/ddp # Zone Information Protocol #========================================================================= # The remaining port numbers are not as allocated by IANA. #========================================================================= # Kerberos (Project Athena/MIT) services # Note that these are for Kerberos v4, and are unofficial. Sites running # v4 should uncomment these and comment out the v5 entries above. # kerberos4 750/udp kerberos-iv kdc # Kerberos (server) kerberos4 750/tcp kerberos-iv kdc kerberos-master 751/udp kerberos_master # Kerberos authentication kerberos-master 751/tcp passwd-server 752/udp passwd_server # Kerberos passwd server krb-prop 754/tcp krb_prop krb5_prop hprop # Kerberos slave propagation krbupdate 760/tcp kreg # Kerberos registration swat 901/tcp # swat kpop 1109/tcp # Pop with Kerberos knetd 2053/tcp # Kerberos de-multiplexor zephyr-srv 2102/udp # Zephyr server zephyr-clt 2103/udp # Zephyr serv-hm connection zephyr-hm 2104/udp # Zephyr hostmanager eklogin 2105/tcp # Kerberos encrypted rlogin # Hmmm. Are we using Kv4 or Kv5 now? Worrying. # The following is probably Kerberos v5 --- ajt@debian.org (11/02/2000) kx 2111/tcp # X over Kerberos iprop 2121/tcp # incremental propagation # # Unofficial but necessary (for NetBSD) services # supfilesrv 871/tcp # SUP server supfiledbg 1127/tcp # SUP debugging # # Services added for the Debian GNU/Linux distribution # linuxconf 98/tcp # LinuxConf poppassd 106/tcp # Eudora poppassd 106/udp ssmtp 465/tcp smtps # SMTP over SSL moira-db 775/tcp moira_db # Moira database moira-update 777/tcp moira_update # Moira update protocol moira-ureg 779/udp moira_ureg # Moira user registration spamd 783/tcp # spamassassin daemon omirr 808/tcp omirrd # online mirror omirr 808/udp omirrd customs 1001/tcp # pmake customs server customs 1001/udp skkserv 1178/tcp # skk jisho server port predict 1210/udp # predict -- satellite tracking rmtcfg 1236/tcp # Gracilis Packeten remote config server wipld 1300/tcp # Wipl network monitor xtel 1313/tcp # french minitel xtelw 1314/tcp # french minitel support 1529/tcp # GNATS cfinger 2003/tcp # GNU Finger frox 2121/tcp # frox: caching ftp proxy ninstall 2150/tcp # ninstall service ninstall 2150/udp zebrasrv 2600/tcp # zebra service zebra 2601/tcp # zebra vty ripd 2602/tcp # ripd vty (zebra) ripngd 2603/tcp # ripngd vty (zebra) ospfd 2604/tcp # ospfd vty (zebra) bgpd 2605/tcp # bgpd vty (zebra) ospf6d 2606/tcp # ospf6d vty (zebra) ospfapi 2607/tcp # OSPF-API isisd 2608/tcp # ISISd vty (zebra) afbackup 2988/tcp # Afbackup system afbackup 2988/udp afmbackup 2989/tcp # Afmbackup system afmbackup 2989/udp xtell 4224/tcp # xtell server fax 4557/tcp # FAX transmission service (old) hylafax 4559/tcp # HylaFAX client-server protocol (new) distmp3 4600/tcp # distmp3host daemon munin 4949/tcp lrrd # Munin enbd-cstatd 5051/tcp # ENBD client statd enbd-sstatd 5052/tcp # ENBD server statd pcrd 5151/tcp # PCR-1000 Daemon noclog 5354/tcp # noclogd with TCP (nocol) noclog 5354/udp # noclogd with UDP (nocol) hostmon 5355/tcp # hostmon uses TCP (nocol) hostmon 5355/udp # hostmon uses UDP (nocol) rplay 5555/udp # RPlay audio service nrpe 5666/tcp # Nagios Remote Plugin Executor nsca 5667/tcp # Nagios Agent - NSCA mrtd 5674/tcp # MRT Routing Daemon bgpsim 5675/tcp # MRT Routing Simulator canna 5680/tcp # cannaserver sane-port 6566/tcp sane saned # SANE network scanner daemon ircd 6667/tcp # Internet Relay Chat zope-ftp 8021/tcp # zope management by ftp tproxy 8081/tcp # Transparent Proxy omniorb 8088/tcp # OmniORB omniorb 8088/udp clc-build-daemon 8990/tcp # Common lisp build daemon xinetd 9098/tcp mandelspawn 9359/udp mandelbrot # network mandelbrot git 9418/tcp # Git Version Control System zope 9673/tcp # zope server webmin 10000/tcp kamanda 10081/tcp # amanda backup services (Kerberos) kamanda 10081/udp amandaidx 10082/tcp # amanda backup services amidxtape 10083/tcp # amanda backup services smsqp 11201/tcp # Alamin SMS gateway smsqp 11201/udp xpilot 15345/tcp # XPilot Contact Port xpilot 15345/udp sgi-cmsd 17001/udp # Cluster membership services daemon sgi-crsd 17002/udp sgi-gcd 17003/udp # SGI Group membership daemon sgi-cad 17004/tcp # Cluster Admin daemon isdnlog 20011/tcp # isdn logging system isdnlog 20011/udp vboxd 20012/tcp # voice box system vboxd 20012/udp binkp 24554/tcp # binkp fidonet protocol asp 27374/tcp # Address Search Protocol asp 27374/udp csync2 30865/tcp # cluster synchronization tool dircproxy 57000/tcp # Detachable IRC Proxy tfido 60177/tcp # fidonet EMSI over telnet fido 60179/tcp # fidonet EMSI over TCP # Local services admsasha-qnetstatview-91a4996de9e4/setupUtiliteKill.cpp000066400000000000000000000023161411134372600231760ustar00rootroot00000000000000#include "setupUtiliteKill.h" #include "ui_setupUtiliteKill.h" #include #include #include #include setupUtiliteKill::setupUtiliteKill(QWidget *parent) : QDialog(parent), ui(new Ui::setupUtiliteKill){ ui->setupUi(this); this->setWindowTitle(tr("Utilite for close connection")); this->setWindowIcon(QIcon(QString(PATH_USERDATA)+"/images/qnetstatview.png")); connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(hide())); connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(actionApply())); QSettings conf(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation)+"/qnetstatview.ini", QSettings::IniFormat); conf.setPath(QSettings::IniFormat, QSettings::UserScope, QDir::currentPath()); ui->lineEdit->setText(conf.value("setup/prockill","").toString()); } setupUtiliteKill::~setupUtiliteKill(){ delete ui; } void setupUtiliteKill::actionApply(){ QSettings conf(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation)+"/qnetstatview.ini", QSettings::IniFormat); conf.setPath(QSettings::IniFormat, QSettings::UserScope, QDir::currentPath()); conf.setValue("setup/prockill",ui->lineEdit->text()); hide(); } admsasha-qnetstatview-91a4996de9e4/setupUtiliteKill.h000066400000000000000000000006161411134372600226440ustar00rootroot00000000000000#ifndef SETUPUTILITEKILL_H #define SETUPUTILITEKILL_H #include namespace Ui { class setupUtiliteKill; } class setupUtiliteKill : public QDialog{ Q_OBJECT public: explicit setupUtiliteKill(QWidget *parent = 0); ~setupUtiliteKill(); private: Ui::setupUtiliteKill *ui; private slots: void actionApply(); }; #endif // SETUPUTILITEKILL_H admsasha-qnetstatview-91a4996de9e4/setupUtiliteKill.ui000066400000000000000000000053161411134372600230340ustar00rootroot00000000000000 setupUtiliteKill 0 0 451 202 Dialog Cancel Qt::Horizontal 40 20 Apply 14 Utilite for close connection Qt::AlignHCenter|Qt::AlignTop Args for program %REMOTE_IP% - Remote IP %REMOTE_PORT% - Remote PORT %LOCAL_IP% - Local IP %LOCAL_PORT% - Local PORT Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop 10 Kill program: Qt::Vertical 20 40